【问题标题】:RewriteRule cannot compile regular expression in VPSRewriteRule 无法在 VPS 中编译正则表达式
【发布时间】:2015-01-30 18:44:12
【问题描述】:

我以前的服务器工作正常。今天我换了新服务器,发现 RewriteRule 无法在我的 htaccess 上编译正则表达式。

如何修复这条线

RewriteRule ^([a-zA-Z0-9_-\s\$\:\!\?\[\]\(\)\'\"]+)$ %{QUERY_STRING}?file=$1 [L]

这是将所有页面重写为 index.php 文件的规则。我正在使用 Apache 2.2.29。谢谢!

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    你的正则表达式确实看起来很可疑,试试这个规则:

    RewriteRule ^([][\w\s$:!()'"-]+)/?$ ?file=$1 [L,QSA]
    
    • 连字符必须位于字符类中的第一个或最后一个位置以避免转义。
    • 无需在字符类中进行所有转义。

    【讨论】:

    • 感谢您的帮助!但是,它不起作用。当我访问mywebsite.com/hello 时,它显示“未找到”。我想将 URL 重写为 index.php。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 2013-01-23
    相关资源
    最近更新 更多