【问题标题】:Rewrite rule containing double slash not matched包含双斜杠的重写规则不匹配
【发布时间】:2016-05-30 03:23:57
【问题描述】:

我正在使用此重写规则来重定向我的搜索请求:
RewriteRule ^search/([^/\.]*)/([^/]+)/?$ index.php?search=$1&additional=$2 [L]

此规则适用于
search/search/add
但是如果给我一个找不到
search//add的页面(空搜索)

我做错了什么?正则表达式应该匹配:

Debuggex Demo

【问题讨论】:

    标签: regex .htaccess mod-rewrite apache2


    【解决方案1】:

    是的,您的正则表达式将匹配 search//add,但问题是 mod_rewrite 引擎在 RewriteRule 指令中将多个斜杠剥离为单个斜杠。

    您可以改用RewriteCond

    RewriteCond %{REQUEST_URI} ^/search/([^/.]*)/([^/]+)/?$ [NC]
    RewriteRule ^ index.php?search=%1&additional=%2 [L,QSA]
    

    【讨论】:

    • 谢谢,不知道有什么区别:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多