【问题标题】:Match string in REQUEST_URI and redirect to that match匹配 REQUEST_URI 中的字符串并重定向到该匹配项
【发布时间】:2015-03-06 19:02:36
【问题描述】:

我想将旧网址 /bakery/pie?id=55 或 /bakery/cake?id=433 重定向到 /bakery/pie 或 /bakery/cake。我尝试在匹配时重定向,但我的错误日志显示“请求超出了 10 个内部重定向的限制”

这是在 WordPress 上运行的。

RewriteEngine On
RewriteBase /

RewriteCond %{$REQUEST_URI} (pie|cake) [NC]
RewriteRule . /bakery/%1? [R,L]

上面的配置有什么问题?

【问题讨论】:

    标签: regex wordpress .htaccess redirect


    【解决方案1】:

    这终于给了我正在寻找的结果并与 WordPress 一起工作:

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} ^id [NC]
    RewriteCond %{REQUEST_URI} (cake|pie.*|des.*) [NC]
    RewriteRule . /bakery/%1? [R,L]
    

    【讨论】:

      【解决方案2】:

      %{$REQUEST_URI} 不是正确的变量,它是 %{REQUEST_URI}。您还必须检查QUERY_STRING 条件。

      你可以使用:

      RewriteEngine On
      
      RewriteCond %{QUERY_STRING} ^id=\d+ [NC]
      RewriteRule ^bakery/(pie|cake)/?$ %{REQUEST_URI}? [NC,R,L]
      

      【讨论】:

      • 感谢您的示例,但是,这对我不起作用。该页面未重定向到 /bakery/cake 或 /pie,并且我在错误日志中没有看到任何错误。
      • 在 WP .htaccess 中确保这条规则在 RewriteEngine On 行的正下方
      猜你喜欢
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 2021-03-31
      • 2020-05-13
      相关资源
      最近更新 更多