【问题标题】:500 Internal error when using mod_rewrite in .htaccess在 .htaccess 中使用 mod_rewrite 时出现 500 内部错误
【发布时间】:2009-04-27 09:35:33
【问题描述】:

我不知道为什么,但是每次我对 .htaccess 文件中的 RewriteRule 使用复杂的模式时,我都会收到 500 内部错误。 我当前的 .htaccess 文件的全部内容是:

RewriteEngine on
RewriteRule ^ups/sections/([A-Za-z]{3})/([A-Za-z0-9_-+\.]+)/?$ /dl.php?loct=sec&sec=$1&file=$2 [R=302]

我只尝试了“RewriteEngine on”并且没有出错。 我尝试了一些非常简单的方法,例如:“RewriteRule ^ups/?$ /xyz [R]”,效果很好。 我尝试过使用和不使用 Symlinks 选项。 我已经尝试在模式的开头使用和不使用斜线,在替换的开头使用和不使用斜线。

似乎每当我使用“复杂”的正则表达式时,它都不起作用。

注意:我不拥有此服务器,无法更改 apache 配置文件。

任何帮助将不胜感激。

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    试着改成

    RewriteRule ^ups/sections/([A-Za-z]{3})/([A-Za-z0-9_+.-]+)/?$ /dl.php?loct=sec&sec=$1&file=$2 [R=302]
    

    【讨论】:

      【解决方案2】:

      解释你的错误:在字符类中,破折号 (-) 总是描述两个字符之间的范围。除了它出现在字符类的开头或结尾。但是您从_+ 的范围无效,因为_ (0x5F) 的位置高于+ (0x2B)。

      【讨论】:

        猜你喜欢
        • 2018-05-10
        • 2011-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-25
        • 2014-08-21
        • 1970-01-01
        • 2014-08-09
        相关资源
        最近更新 更多