【问题标题】:.htaccess 301 with querystring and special characters.htaccess 301 带有查询字符串和特殊字符
【发布时间】:2020-03-18 06:58:44
【问题描述】:

我在网站上四处寻找答案并遵循了一些示例,但我仍然对此一无所知。 我正在尝试重定向以下内容。

www.mydomain.com/?s=flat+roof+specifier+checklistwww.mydomain.com/resources/flat-roof-checklist/

我的重写规则如下。

RewriteCond %{QUERY_STRING} s=flat+roof+specifier+checklist
RewriteRule ^(.*)$ /resources/flat-roof-checklist/? [L,R=301]

我认为我遇到的问题是“+”字符。 如果我将我的网址更改为:

www.mydomain.com/?s=flat%20roof%20specifier%20checklist

我的重写条件为:

RewriteCond %{QUERY_STRING} s=flat%20roof%20specifier%20checklist

它工作正常。

问题在于,URL 必须是 www.mydomain.com/?s=flat+roof+specifier+checklist(其中包含 + 字符),因为企业已经使用该特定 url 发送通信,所以很遗憾我无法更改它。

我是否缺少某种正则表达式来预先格式化我的网址?

网站上已经运行了一个 301 重定向插件,但它也不能与它一起使用。 抱歉,我对 php、wordpress、htaccess 等还很陌生。

任何帮助将不胜感激。

【问题讨论】:

    标签: wordpress .htaccess url-rewriting special-characters query-string


    【解决方案1】:

    您可以将模式放入正则表达式捕获组并转义加号,使用以下命令在我的测试服务器上进行测试和工作

    RewriteCond %{QUERY_STRING} (s=flat\+roof\+specifier\+checklist)
    RewriteRule ^(.*)$ /resources/flat-roof-checklist/? [L,R=301]
    

    【讨论】:

    • 非常感谢!这已经有点让人头疼了!非常非常感谢。我有一种感觉,这将是一个正则表达式。我的正则表达式不太好。再次,非常感谢。这是一种享受!
    • @AndyPoole 没问题,伙计,你用过正则表达式吗?这是一个测试正则表达式的好网站:regexpal.com
    • 不错的一个!我还没有使用它... ...但我会现在。 :)
    猜你喜欢
    • 2012-03-23
    • 1970-01-01
    • 2018-05-15
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多