.htaccess 500内部错误,即使规则正确

时间:2019-04-13 16:58:34

标签: .htaccess mod-rewrite

.htaccess存在一些问题。问题是,即使我之前使用相同的确切几次,我的RewriteRule似乎还是无效的。 .htaccess规则是:

RewriteEngine On
RewriteRule api/(.*) api.php?method=$1

问题是,当我访问我的网站时,立即遇到500 Internal Server错误。我尝试将文件编辑为此:

Deny from all

#RewriteEngine On
#RewriteRule api/(.*) api.php?method=$1

我得到了permission denied预期的行为),所以一切正常吗?我不知道htaccess文件出了什么问题。 我尝试执行以下操作:
-使用service apache2 restart重新启动Apache
-我在上面说过的话,尝试一个简单的规则,只要一切正确,就会起作用,并注释掉其余部分
-在另一个文件中写入相同的规则,并用该规则替换我的.htaccess文件中的文本(我读到某个地方可能会有.htaccess完全不喜欢的“不可见”字符)

1 个答案:

答案 0 :(得分:1)

您需要排除规则重写到的目标路径,否则您将获得一个无限的内部重写循环,因为您的重写模式api/(.*)也与路径/api/api.php匹配。

RewriteCond %{REQUEST_URI} !/api\.php [NC]
RewriteRule api/(.*) api.php?method=$1