2013-01-24 186 views
0

好了,我已經設置了的.htaccess像這樣:阻止訪問PHP頁面

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)$ index.php 

所以你可以看到我解析一切,除了索引文件,因爲我需要「列入」 PHP文件並顯示圖像。

如果用戶輸入例如www.site.com/login.php將顯示登錄php頁面。

如何防止訪問php頁面,但也允許「包含」它們?

+0

文件不需要通過Web服務器進行網絡訪問以包含在PHP中。 –

回答

1

將它們移到文檔根目錄之外。他們可以從那裏安全地進入,但不能通過網絡訪問。

0

如果我明白這個問題,你是否不想讓用戶去其他文件,如果沒有登錄?如果是這樣你可以使用PHP的會話來設置他們登錄的變量,否則重定向到指數

(如果我沒有理解這個問題)

0

如果你想走這條路(外Webroot公司的建議是正確的!),那麼你可以使用規則那樣(見regex negative lookahead):

RewriteRule ^(?!index).+\.php$ - [F] 

這是草率的,將允許index2.phpindexdir/xyz.php依然;它只是對不是index * .php的任何內容進行訪問。如果需要,請確保也禁止.cgi.phtml.tpl

+0

實際上,使當前的index.php規則爲'[L]'最後更簡單,並且在後面的後退規則中不允許使用'[F]'''。 – mario