我的.htaccess文件看起来像这样,以便将我的网址从/something.php转换为/ something:
Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
当请求php扩展时,它仍然有效。如果请求.php扩展名,我如何返回404?谢谢。
答案 0 :(得分:1)
首先,您的方法应缩短为:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
这会探测是否存在.php文件,而不是缺少其基本名称。
由于这是[LAST]
规则,您可以在之后(或可能在RewriteRule / RewriteCond块之前)探测已存在的.php后缀:
RewriteRule ^(.*)\.php$ - [F]
...或在这种情况下发出重定向。
答案 1 :(得分:0)
试试吧
<FilesMatch "\.(php)$">
RewriteRule ^(.*)$ /404.html [L,S]
</FilesMatch>