【问题标题】:htaccess line - 500 errorhtaccess 行 - 500 错误
【发布时间】:2011-09-29 12:10:56
【问题描述】:

我有一个 htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我想在下面添加一行,但它给了我 500 错误。

选项-索引

有人可以帮忙吗?

【问题讨论】:

  • 检查 Apache 的 错误日志 -- 它会告诉你错误的确切原因(这就是错误日志的用途)。

标签: apache .htaccess apache2


【解决方案1】:

检查您的 .htaccess 所在的目录是否在 httpd.conf 中启用了必要的 AllowOverride(启用必须是:至少 AuthConfig 和 Options)。

确保它不在

<IfModule mod_rewrite.c>
...
</IfModule>

你的 .htaccess 的一部分

通常你的错误日志中应该有一个日志消息。我想,你会发现这样的:

[alert] [client 192.xxx.xxx.xxx] /path/to/web/.htaccess: Options not allowed here

此解决方案并不总是有帮助(取决于您使用的 apache 版本):在某些情况下,您必须将此部分移至 httpd.conf 以使其正常工作。

在apache-docs中有详细说明。

【讨论】:

  • 虽然不应该导致 500 错误 - 它应该静默失败;覆盖不起作用 - 是吗?
  • 我在一些 apache 版本上看到了这个问题,它没有被忽略,而是抛出了意外的内部错误。
  • 哦 - 我必须在心里记下来以备将来参考 - 谢谢 :) 即使这个答案不能解决最初的问题,它仍然有用!
  • 如果答案有帮助并解决了您的问题,请将答案标记为已接受,以便其他人看到此答案是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 2014-04-23
相关资源
最近更新 更多