【问题标题】:mod rewrite to route based on a uri segment (wordpress permalink)mod 重写为基于 uri 段的路由(wordpress 永久链接)
【发布时间】:2011-04-21 18:10:28
【问题描述】:

Wordpress 专家:

所以,我的 wordpress 实例当前设置为使用友好的 url。我当前的重写规则如下所示:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

这基本上意味着:将所有内容发送到 index.php 进行调度。

我需要做的是,每当有人访问我的页面 /promo 时,我将 uri 的其余部分发送到该控制器(这是通过模板名称:Promo 附加到页面的文件 promo.php)但它仍然会需要通过 index.php 进行管道传输才能做到这一点。

简而言之,我希望 /promo/fakecompany 在技术上对 wordpress 有这样的行为:index.php?page=promo&fakecompany

甚至是一个重定向,它会使用 /promo 之外的任何内容的第二段并从中创建一个查询字符串,即一种动态类型:

Redirect 301 /promo/fakecompany /promo/?fakecompany
Redirect 301 /promo/fakecompany/referpage /promo/?fakecompany&referpage

有没有办法做到这一点?或者可能是更优雅的解决方案?最糟糕的是,我现在只需要在重定向中硬编码:

提前致谢。

【问题讨论】:

    标签: php wordpress .htaccess mod-rewrite


    【解决方案1】:

    您当前的规则说:将任何不是常规文件或目录的内容重定向到 index.php

    根据您的要求:

    RewriteRule ^/promo/([^/]+)$ index.php?page=promo&$1 [L]
    

    RewriteRule ^/promo/([^/]+)/([^/]+)/$ /promo/?$1&$2
    

    应该可以(前提是你把它放在当前规则之前)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-19
      • 2011-11-18
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多