如何在.htaccess中将特定永久链接wordpress页面重定向到另一个页面?

时间:2011-11-29 10:18:04

标签: wordpress .htaccess

我有这个由Wordpress和电子商务插件生成的.htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^.products/images/(\d+)/?\??(.*)$ /wp-content/plugins/shopp/core/image.php?siid=$1&$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

我现在必须将访问http://mydomain.com/golf的人重定向到http://mydomain.com/products/category/golf/

我将这些规则放在现有块上方的一个块中,即半工作:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^golf.*$ products/category/golf/ [R=permanent,L]
RewriteRule ^cycling.*$ products/category/cycling/ [R=permanent,L]
#...etc
</IfModule>

问题是,如果有人输入http://mydomain.com/golfshoes,它仍会重定向。我试图玩通配符等,但不能让它只允许/高尔夫和/ golf /

另外......这是设置这些规则的最有效方法吗?我应该做某种if或if或者然后重定向?

谢谢:) 本

1 个答案:

答案 0 :(得分:2)

尝试将2个正则表达式更改为:

RewriteRule ^golf(/.*)?$ products/category/golf/$1 [R=permanent,L]
RewriteRule ^cycling(/.*)?$ products/category/cycling/$1 [R=permanent,L]

(/.*)匹配&#34; /&#34;或&#34; /某事物&#34;,表示它可能不在那里。目标处的 $ 1 表示括号中匹配的内容。因此,前往http://mydomain.com/golf/foo.html的人将获得/prodducts/category/golf/foo.html