重写一个URL并阻止文件扩展名?
问题描述:
是否有可能重写一个url并阻止文件扩展名?重写一个URL并阻止文件扩展名?
例如:如果我有
`http://www.example.com/search.php?...`
可我把它改写为
`http://www.example.com/search?` ?
但是,阻止访问到PHP文件,通常我可以两种方式访问,使用和不使用文件扩展名,但我希望它显示一个错误页面或404如果我使用search.php访问。
是否有可能?
谢谢。
答
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} .*\.php
RewriteRule ^(.*)$ error404.html [R=404]
答
请考虑使用以下配置:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^(.*)\.php$ error404.html [R=301,L]
我可以.PHP访问,但不能没有它。 – CSSJediEsck21 2010-01-28 06:58:08
这不是规则说的。你确定你正确地使用它们吗? – 2010-01-28 07:00:21
好的,现在它可以工作,但不是很好,它完全阻止了文件。有和没有扩展名。 – CSSJediEsck21 2010-01-28 07:50:06