WordPress RewriteRule - 避免部分匹配

时间:2012-12-15 21:31:30

标签: wordpress mod-rewrite

我正在将ColdFusion网站转换为WordPress。这都是静态内容,所以这不是问题。

我正在尝试设置301重定向(目前在测试期间为302),以便搜索引擎重新映射页面。我已创建了以下内容,其工作率为90%。

问题在于,如果我对与另一个页面部分匹配的文件名进行重定向,那么它会找到并重定向到部分匹配。

例如:

http://www.example.com/a/b/c/this-doesnt-exist.cfm正确地重定向到:
http://www.example.com/a/b/c/this-doesnt-exist/出现404错误。没关系。

BUT:

http://www.example.com/blah/blah/asdf/r23af/b.cfm重定向到:
http://www.example.com/blog/

基本上,它正在剥离.cfm并对文件名b进行部分匹配

我怎样才能避免部分匹配 - 这会产生不可预测的重定向(例如,我们有50个目录都有index.cfm文件,它们只应转到右侧文件夹的右侧页面,而不是一个常见的/index/文件)

# BEGIN Wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_URI} \.(cfm)$
RewriteRule ^(.+)\.cfm$  /$1/ [R=302,NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END Wordpress

0 个答案:

没有答案