我真的需要帮助。我知道如果我在.htaccess文件中添加以下行,php将显示为html。
RewriteRule ^(.*)\.html$ $1.php
当我写http://example.org/abc.html
时,实际上abc.php
正在执行。但是当我写http://example.org/abc.php
时,它也有效。
我可以在.htaccess
文件中添加.php无效的内容。我的意思是当我写abc.html
时,abc.php
将会执行。但如果我写abc.php
,它将显示404错误。
答案 0 :(得分:0)
尝试将此添加到您的.htaccess
:
RedirectMatch 404 \.php$
RedirectMatch
与查询字符串不匹配,因此甚至应该重定向whatever.php?someParam=someValue
。
答案 1 :(得分:0)
添加此规则应将.php文件重定向到404
RewriteRule ^(.*).php - [R=404]
R = 404部分将返回代码设置为404.这里有关于R选项的文档:http://httpd.apache.org/docs/current/rewrite/flags.html#flag_r。 " - "表示URL未经过更改传递。
您还需要在两个重定向规则(取自http://www.askapache.com/htaccess/modrewrite-tips-tricks.html#Fix_infinite_loops)之前添加此内容:
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
这将阻止重定向循环发生,当用户使用.html扩展名和.php扩展名时,会向用户显示404错误。