【问题标题】:htaccess 301 redirect with regular expressionshtaccess 301 使用正则表达式重定向
【发布时间】:2014-12-05 21:15:35
【问题描述】:

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

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

例如:

 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]

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

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

提前致谢!

【问题讨论】:

  • 试试:RewriteRule ^cs_AI_Adobe_CC_Design_Combo\.html$ courses/adobe-design-combo [R=301,L]

标签: regex .htaccess mod-rewrite redirect


【解决方案1】:

您需要删除重写标志中, 之后的空格。 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

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 2018-05-31
    • 2018-06-17
    • 2017-06-21
    • 2015-01-30
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多