0

抱歉标题太长了。我目前正在编写一些 301 重定向并使用 mod rewrite (Apache) 来处理它们。目前,我尝试过的两个 301 中只有一个在工作。这是代码:

#301 REDIRECTS
RewriteEngine On
RewriteRule ^Fox-and-Frank-home\.html$ http://www.mydomain.co.uk/contact_us.php [R=301]
RewriteRule ^about\.html$ http://www.domain.com/about/ [R=301,L]

about.html 正确重定向,但 Fox-and-Frank-home.html 没有。我已经尝试过使用其他名称、其他 URL,但它不起作用。任何帮助将不胜感激。

编辑

我已经让它在一个完全裸露的 .htaccess 文件上工作。301 重定向是否需要排在最前面?

4

1 回答 1

1

您的 Fox-and-Frank 重写中没有 L(最后一个)标志,因此可能会处理其他规则,并且肯定会在 a .htaccess(您需要使用该END标志的地方)中。

尝试将其更改为:

RewriteRule ^Fox-and-Frank-home\.html$ http://www.mydomain.co.uk/contact-us.php [NC,R=301,L]

在哪里:

  • NC 使其成为不区分大小写的检查(因此 fox-and-frank-home 将重定向到)
  • R=301 是 301 重定向(尽管您可以只输入 R 并且假设 301 我总是亲自指定)
  • L 告诉 mod_rewrite 停止处理进一步的规则(但 .htaccess.您可能需要使用它END来代替 - 请参阅http://httpd.apache.org/docs/current/rewrite/flags.html#flag_l)。

问候。

于 2012-04-21T13:57:18.757 回答