2012-11-20 72 views
0

我在我的主機上閱讀了一篇關於如何將子文件夾設置爲我的域的根的文章,但它誤導了我相信所有請求都會被髮送到/ subfolder /和根本不是根本,事實並非如此。如何以root身份設置子文件夾並限制某些訪問

我在根目錄下的.htaccess中使用此代碼,不幸的是,它不能按需要工作。

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 

RewriteCond %{REQUEST_URI} !^/subfolder/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ /subfolder/$1 

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ 
RewriteRule ^(/)?$ subfolder/index.php [L] 

我想要實現的是如下情況:/子目錄

  • 根/
  • 所有請求原來真正的根被拒絕,就好像根本不存在, 。例如phpinfo.php,php.ini,任何頁面或其他項目都會被/子文件夾/中設置的錯誤處理拒絕訪問。任何對「domain.com/whateverhere」的請求絕對總是發送到/ subfolder /。
  • 如果可能,限制任何能夠轉到domain.com/subfolder/以顯示404的能力。但我認爲重定向同樣有效。
  • 我目前在位於domain.com/resources/的根目錄中使用了一個/ resources /文件夾,其中包含腳本,css,圖像等,並且即使重寫是爲了將/ subfolder /設置爲root,即使它不在/子文件夾/中,對domain.com/resources/的請求仍然被接受。正如我之前所說的,我想知道如何真正限制對真實根目錄的訪問,並強制所有請求到/子文件夾/。

總而言之,我想將「root」完全設置爲/子文件夾/,在實際根目錄下有phpinfo.php和php.ini等重要文件,並且仍然使用.htaccess像往常一樣在真正的根。

我知道我在這裏問很多,所以我很抱歉。

先謝謝任何能夠提供幫助的人。

回答

0

您可以將.htpasswd文件添加到您的子文件夾:

htpasswd的

admin:$apr1$EvV5M50w$9IgAqskEg5r2pIIXUzQyp0 

而在你子文件夾將其定義/的.htaccess文件像這樣:

AuthUserFile /www/site/.htpasswd 
AuthType Basic 
AuthName "My secret place" 
require valid-user 

現在打開你的子文件夾,你會被要求很遠的密碼和我們ername(admin/admin在我的例子中)。

而且將其設置爲啓動文件夾,你總是可以只添加

<?php header('Location: /subfolder/'); die; ?> 

在您的index.php文件的最頂端,所以它總是您重定向到子文件夾。

相關問題