htaccess 301使用正则表达式重定向

时间:2014-10-10 16:23:12

标签: regex .htaccess mod-rewrite redirect

帮助客户部署具有大量页面的新网站。 我最近发现我可以创建一个带有301重定向的重写器。

我们为旧网站的网址上的标准重写创建了一个大型htaccess,以便在新网站上显示,但我们需要将它们转换为301重定向到网站上的新网址结构,否则我们将有重复的内容。

例如:

 RewriteEngine On
 RewriteRule ^cs_AI_Adobe_CC_Design_Combo.html$ courses/adobe-design-combo [NC,L]

我们想把它变成301吗?我们尝试了以下哪些不起作用:

 RewriteEngine On
 RewriteRule ^cs_AI_Adobe_CC_Design_Combo.html$ courses/adobe-design-combo [R=301, L]

只是想知道我哪里出错了?

我们还有更大的更复杂的规则,可以作为重写而不是重定向。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您需要在重写标记中删除,之后的空格。 Apache在解析指令和参数方面非常愚蠢,所以当它看到那个空格时,它认为[R=301,L]是独立的参数和呕吐:

RewriteEngine On
RewriteRule ^cs_AI_Adobe_CC_Design_Combo.html$ courses/adobe-design-combo [R=301,L]

您也可以使用mod_alias:

Redirect 301 /cs_AI_Adobe_CC_Design_Combo.html /courses/adobe-design-combo