用变量重定向wordpress页面

时间:2013-12-13 09:50:57

标签: php wordpress apache .htaccess mod-rewrite

刚刚创建了一个基于Wordpress的网站,现在我遇到了以下问题。没有在Wordpress中构建的旧网站使用变量p=作为其页面,就像Wordpress一样。现在我正在尝试重定向它们,但这不起作用,我认为因为Wordpress也使用了p变量。

我想将页面http://purplethinking.nl/mauritshof/?p=brunch重定向到页面http://purplethinking.nl/mauritshof/feestelijk/brunch

我更改了.htaccess并添加了以下行:

RewriteRule ^/mauritshof/?p=brunch$ /feestelijk/brunch/[L]

你能说出我做错了什么吗?

编辑:这是我完整的.htaccess文件

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mauritshof/

RewriteCond %{QUERY_STRING} ^p=([^&]+)
RewriteRule ^mauritshof/?$ /feestelijk/brunch/ [L,R]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mauritshof/index.php [L]
</IfModule>

# END WordPress

1 个答案:

答案 0 :(得分:1)

您的规则无效,因为:

  • RewriteRule与QUERY_STRING不匹配。
  • RewriteRule与前导斜杠不匹配
  • 您需要一个用于重定向的R标志

完整.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mauritshof/

RewriteCond %{QUERY_STRING} ^p=(brunch)(?:&|$)
RewriteRule ^/?$ /feestelijk/%1/? [L,R]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mauritshof/index.php [L]
</IfModule>

# END WordPress