【问题标题】:.htaccess (mod_rewrite) 500 Internal Server Error.htaccess (mod_rewrite) 500 内部服务器错误
【发布时间】:2015-07-12 21:58:40
【问题描述】:

我的 .htaccess 中有这个 但我收到 500 内部服务器错误。 我几乎尝试了我在互联网上找到的所有东西 对于 mod_rewrite,但它仍然对我没有帮助。 我该如何解决这个问题?

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^zip/([A-Z]*)/([a-zA-Z]*)$ zip.php?state=$1&city=$2 [L,QSA]
</IfModule>

ErrorDocument 404 /404.php

FileETag MTime Size

<IfModule mod_expires.c>
    <filesmatch ".(jpg|jpeg|gif|png|ico|css|js|woff)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 year"
    </filesmatch>
</IfModule>

【问题讨论】:

  • 您是否尝试过检查错误日志或注释掉所有行并逐行注释以缩小问题范围?
  • /var/log/apache2/error.log 是您要开始的地方...
  • 我无权访问 apache 错误日志

标签: php apache .htaccess mod-rewrite


【解决方案1】:

尝试在 ifmodule 容器中包含所有 mod_rewrite 指令:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^zip/([A-Z]*)/([a-zA-Z]*)$ zip.php?state=$1&city=$2 [L,QSA]
</IfModule>

如果这样可以解决问题,那么您就知道您没有加载 mod_rewrite。否则,是时候从您的 htaccess 文件中删除行,直到您停止收到 500 错误。

【讨论】:

  • 我启用了 mod_rewrite,所以你的代码对我没有帮助:P
  • @DandoZ900 开始从您的 htaccess 文件中删除行,直到它为空。如果无法访问您的错误日志,您必须盲目猜测,如果您仍然得到没有 htaccess 文件的 500,那么您知道它是别的东西。
【解决方案2】:

你的 mod_deflate.c 有问题 确保放气模块已启用。您可以删除以使其工作,如下所示。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^zip/([A-Z]*)/([a-zA-Z]*)$ zip.php?state=$1&city=$2 [L,QSA]

ErrorDocument 404 /404.php

FileETag MTime Size

<IfModule mod_expires.c>
    <filesmatch ".(jpg|jpeg|gif|png|ico|css|js|woff)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 year"
    </filesmatch>
</IfModule>

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 2011-07-09
    • 2014-08-21
    • 2016-09-22
    • 2017-04-05
    • 1970-01-01
    • 2013-02-06
    • 2015-06-28
    • 2016-04-20
    相关资源
    最近更新 更多