Apache URL重写问题

Apache URL重写问题,apache,url,.htaccess,mod-rewrite,Apache,Url,.htaccess,Mod Rewrite,我使用.htaccess将www.site.com/sell.php等URL更改为www.site.com/sell。在my/上存在销售页面,并且工作正常。问题是当我尝试像www.site.com/sadasddfgfds这样的东西时,因为“sadasddfgfds”不存在。我收到一个500 Apache的错误 这是我的.htaccess文件: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCo

我使用.htaccess将www.site.com/sell.php等URL更改为www.site.com/sell。在my/上存在销售页面,并且工作正常。问题是当我尝试像www.site.com/sadasddfgfds这样的东西时,因为“sadasddfgfds”不存在。我收到一个500 Apache的错误

这是我的.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /$0.php
我怎样才能修好它?谢谢你们

更新:工作!谢谢大家!
现在,如何将用户重定向到404自定义错误页?

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

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

否则您将得到一个无限递归。

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

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

肯定会有一些聪明的人来帮你。但是,您可以考虑将此发布到有一组服务器专家GuysErrordOctup/40/4.PHP的地方,这是自定义错误页面的全部内容。