首页 文章

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

提问于
浏览
1

帮助客户部署具有大量页面的新网站 . 我最近发现我可以使用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

    您需要在重写标志中删除 , 之后的空格 . Apache对于解析指令和参数非常愚蠢,所以当它看到那个空格时,它假设 [R=301,L] 是单独的参数和pukes:

    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
    

相关问题