【问题标题】:.htaccess 500 Internal Error even though rules are correct.htaccess 500 内部错误,即使规则正确
【发布时间】:2019-04-13 16:58:34
【问题描述】:

我在使用 .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 完全喜欢的“不可见”字符)

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

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

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

    【讨论】:

    • 错误显示如下:link我现在意识到错误是什么,但我之前从未阅读过错误日志,因为有人告诉我.htaccess 错误不会存储在任何地方。不过非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    相关资源
    最近更新 更多