【问题标题】:.htaccess and internal server error.htaccess 和内部服务器错误
【发布时间】:2011-08-07 01:49:17
【问题描述】:

我一直在尝试设置 .htaccess 来创建干净的 PHP URL。我的目标是在文件夹 CL 中实现干净的 URL。

.htaccess:

# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php

<IfModule mod_rewrite.c>
    # This is the initialization
    # For security reasons, Option followsymlinks cannot be overridden.
    #Options +FollowSymLinks
    Options +SymLinksIfOwnerMatch
    RewriteEngine On
    RewriteBase /

    # /CL/var1/var2/var3
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^CL/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ /CL/index.php?var1=$1&var2=$2&var3=$3 [L,QSA]

    # /CL/var1/var2
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^CL/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$ /CL/index.php?var1=$1&var2=$2 [L,QSA]

    # /CL/var1
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^CL/([a-zA-Z0-9\-]+)/?$ /CL/index.php?var1=$1 [L,QSA]
</IfModule>

但是,由于某种原因,当您进入文件夹 CL 时,我收到 500 内部服务器错误。我过去使用过类似的 .htaccess 配置,但现在由于某种原因无法正常工作。

有什么想法吗?

【问题讨论】:

  • 检查 Apache 的错误日志——它会为您提供详细的错误信息,仅此一项就足以解决问题。您的 .htaccess 快速概览显示没有任何问题。
  • 我试图访问我服务器的错误日志将近 2 个小时,但我一点运气都没有——我应该找到它们吗?
  • 它应该在访问日志所在的同一文件夹中。如果没有 - 请与您的托管公司联系。

标签: .htaccess internal-server-error


【解决方案1】:

“我过去使用过类似的 .htaccess 配置,但现在由于某种原因无法正常工作。”

好的,所以规则集有效。我刚刚在我的一个测试虚拟机上进行了测试,所以它仍然可以工作,所以你的问题不是这个 .htaccess 文件中的 mod_rewrite 功能。那么它可能在哪里呢? 横向思考。 500 状态通常是一个 mod_rewrite 循环。您在 /CL 中有 .htaccess 文件吗?这可能会创建一个 perdir 无限循环。

不幸的是,DS 建议尝试从共享托管服务提供商处获取有关 error_log 内容的答案以获取每年 100 美元的共享服务,但该建议是不允许的。士气:在您的 PC 上设置一个测试虚拟机来调试这些东西,您可以在其中获得对日志的 root 访问权限,如文章 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2014-10-31
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2017-04-05
    相关资源
    最近更新 更多