2017-01-27 32 views
0

在我的htaccess中,我有這個規則。如果有人輸入它,htaccess如何阻止php擴展?

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule ^(.*)$ $1\.php 

我的PHP擴展現在是從我的網站關閉。

但事實是..

如果用戶鍵入向下.PHP到底會加載頁面。

有沒有一種方法可以阻止.php從url?

+1

[重寫文件的可能的複製擴展BUT拒絕直接訪問文件](http://stackoverflow.com/questions/7623725/rewrite-file-extension-but-deny-direct-access-to-file) – cteski

+1

Yo如果有人輸入「example.com/index.php」,他會打開「example.com/index」? – mirzak

+0

想給它一個錯誤,如果客戶端類型.php –

回答

4

您可以使用一個額外的規則與THE_REQUEST變量,如果客戶端發送的直接請求發送禁止錯誤.php文件:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \.php[/\s?] [NC] 
RewriteRule^- [F] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 
2

添加此

RewriteRule ^.*?\.php$ forbidden [F,L] 
+2

這將使OP的規則也失敗。 – anubhava

0
<IfModule mod_rewrite.c> 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^.*?\.php$ forbidden [F,L] 

</IfModule>