2014-01-24 121 views
4

好吧,我花了近4個小時在網站上搜索解決方案,另外2個小時搜索谷歌,當大多數網站複製粘貼數據時,這並不是很有用。所以在這裏我決定尋求一點幫助。從一個文件夾創建子域名,但是拒絕文件夾訪問

我創建了一個子域名,比如說http://admin.myhost.com,基本上從文件夾admin取數據。問題是,當我把http://myhost.com/admin的腳本仍然可以訪問。假設我想讓這個文件夾無法訪問,將一個重定向到一個自定義文件,例如index.php?template=error404,當某個文件通過url http://myhost.com/admin執行時。我已將此行添加到.htaccess

RewriteRule ^admin(.*) /index.php?template=error404 [L] 

並且它結束了。

Options +FollowSymlinks 

Options -Indexes 

<FilesMatch "\.(tpl|ini|log)"> 
Order deny,allow 
Deny from all 
</FilesMatch> 

RewriteEngine On 

RewriteBase/
RewriteRule ^sitemap.xml$ index.php?map=google_sitemap [L] 
RewriteRule ^googlebase.xml$ index.php?map=google_base [L] 
RewriteRule ^download(.*) /index.php?template=error404 [L] 
RewriteRule ^admin(.*) /index.php?template=error404 [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteRule ^([^?]*) index.php?seo_url=$1 [L,QSA] 

它實際上只能如果我刪除管理員文件夾中的空.htaccess(這只是說RewriteEngine敘述上),但是當我這樣做,該網站http://admin.myhost.com拋出一個HTTP錯誤500,它是無法訪問了。如果我在管理文件夾中述明規則RewriteEngine敘述再次.htaccess增加,子域重新開始工作,但同樣,該文件夾是通過URL訪問添加/admin

我似乎無法找到解決這個問題幾個小時後。有沒有辦法做到這一點?難道我做錯了什麼?

+0

有你在簡單地作出index.php文件試圖(admin)文件夾。並只寫只有線條 標題(「位置:任何網頁網址」);所以它會重定向它。當一些機構訪問admin文件夾... – daniyalahmad

回答

4

/admin/.htaccess有這樣的規則:

RewriteEngine On 

# block access if HOSTNAME is not starting with admin.  
RewriteCond %{HTTP_HOST} !^admin\. [NC] 
RewriteRule^- [F] 

或者如果你想顯示/index.php?template=error404然後

RewriteCond %{HTTP_HOST} !^admin\. [NC] 
RewriteRule^/index.php?template=error404 [L,QSA] 
+1

感謝上帝,我實際上編輯了最後一行重定向到自定義404錯誤,實際上抓住遠程地址,並添加數據庫的所有錯誤,請求uri,時間,網址,瀏覽器,和其他數據,這就是爲什麼我需要重定向而不是保護。非常感謝! – user3153340

+0

不用客氣,很高興它解決了問題,只要SO允許您將答案標記爲已接受。 – anubhava

+2

是的,我正在等待被允許標記它,再次感謝,現在我的頭痛慢慢消失... – user3153340

相關問題