URL重写问题

时间:2010-05-10 19:23:28

标签: apache url .htaccess mod-rewrite

我做了一个.htaccess,将www.site.com/sell.php等网址更改为www.site.com/sell。卖页面存在于我的/它工作正常。问题是当我尝试像www.site.com/sadasdasdasdadsdfgfds这样的东西时,因为“sadasdasdasdadsdfgfds”不存在。我收到了500个Apache的错误。

这是我的.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /$0.php

我该如何解决?谢谢你们。

更新:工作了!多谢你们! 现在,如何将用户重定向到404自定义错误页面?

2 个答案:

答案 0 :(得分:1)

您需要检查以确保该文件不存在。您还必须确保相应的php文件确实存在:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* /$0.php

答案 1 :(得分:0)

您需要测试新目标是否为现有文件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* /$0.php

否则你将获得无限递归。