mod重写基于uri段的路由(wordpress permalink)

时间:2011-04-20 21:33:55

标签: php wordpress .htaccess mod-rewrite

Wordpress专家:

所以,我的wordpress实例目前设置为使用友好的网址。我目前的重写规则看起来像这样:

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

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

我需要做的是,每当有人访问我的页面/促销时,我将其余的uri发送到该控制器(这是一个文件promo.php通过模板名称:Promo附加到页面上)但它仍然会需要通过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

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

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

根据您的要求:

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

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

应该有效(如果你把它放在现行规则之前)