重写多个文件的规则

时间:2015-03-27 01:22:56

标签: php wordpress .htaccess mod-rewrite redirect

我们刚刚推出了一个新网站,并发现我们需要修复的WebMaster工具中存在多个Google错误。我们在启动之前使用重定向301重定向主要页面,但是想要为文件不存在的字符串/目录/等重写500多个错误。

错误看起来像这样:

  • /product.php?id=143(多个ID)
  • /page.php?id=109(多个ID)
  • /product_42-productname.htm(多个产品名称)

我们可以执行一个catchall类型重定向,其中任何以/ product开头的页面都会转到单个页面吗?

我们正在运行一个Wordpress网站,所以当前的htaccess有:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>'

我们是否需要将其作为该语句的一部分或稍后包含在htaccess文件中?

我们已经尝试了很多选项,但不想列出htaccess中的每个项目,只是无法理解如何轻松解决这个问题???

最值得赞赏的任何帮助。

TA

1 个答案:

答案 0 :(得分:0)

你可以抓住违规的&#34;产品&#34;链接并重定向到 index.php ,而不是您的主页。该规则将出现在您的wordpress规则之前,如下所示。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^(product|page) /index.php? [R,L]

RewriteRule ^index\.php$ - [L]

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

该规则将捕获链接,而不管它带来什么查询参数(ID)。