【发布时间】:2014-01-12 04:18:42
【问题描述】:
我有这个 .htaccess 文件:
Options -Indexes
RewriteEngine on
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]*)/?(.*)$ ./$1.php
RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)$ - [L,R=404]
但是,当我转到 localhost/example.php 时,它返回 500 Internal Server Error。
有什么帮助吗?谢谢。
编辑:
出现的完整错误信息是:
Not Found
The requested URL /example.php was not found on this server.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
【问题讨论】:
-
你试过我下面贴的答案了吗?
-
我投票决定关闭这个问题,因为 500 错误是一个非常普遍的“出现问题”错误。这可能是配置错误、权限问题或编码错误。您的服务器的错误日志中提供了有关错误的具体原因的更多信息。如果不查看日志,就无法准确回答这个问题。这里的任何答案都是猜测,可能的答案有数百甚至数千个。
-
@StephenOstermiller 我认为这个问题很好,因为它收到了一个适用于 OP 的答案。如果您是 mod 重写专家,请查看下面的帖子并编辑标题以使其更具体,这对社区比关闭问题更有帮助。
-
问题是这个答案不太可能很好地为其他有类似问题的人服务。随着时间的推移,随着人们发现他们设法以其他方式解决的其他 500 个错误,它也可能会积累大量其他答案。最近才添加了这样一个额外的答案。
标签: php regex apache .htaccess mod-rewrite