Amazon Web Services:使用 mod_rewrite 管理公共 DNS 和弹性 IP 内容重复

Amazon Web Services:使用 mod_rewrite 管理公共 DNS 和弹性 IP 内容重复

我目前正在解决我的 AWS 网站的内容重复问题,以达到 SEO 目的。更具体地说,我正在尝试为重复的地址实施重写规则:

  • 公共 DNS(ec2-my.ip.address.compute-1.amazonaws.com/anywebpage)
  • 弹性 IP(my.ip.address/anywebpage)

到我的主要域名http://mydomain.com/anywebpage

到目前为止,我已经应用了以下修复程序,它似乎只重写/301 主页:

RewriteEngine On    
RewriteCond %{HTTP_HOST} my.ip.address.compute-1.amazonaws.com
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]

它似乎没有做的是将重写规则应用于我访问的重复地址下的任何网页。例如,如果我访问 my.ip.address.blabla.com/mywebpage ,我应该被重定向到http://www.mydomain.com/mywebpage

我这里是否遗漏了一些关键语法?

任何帮助均感激不尽。

答案1

这是我的做法,对我来说效果很好。

  RewriteCond %{HTTP_HOST} !^www.mydomain.com$ [NC]
  RewriteRule ^/(.*) http://www.mydomain.com/$1 [R=301,L]

您的正则表达式实际上可能会重定向到额外的 / 但看起来它应该以其他方式工作。

您可以尝试打开重写日志并用它来调试。我发现它有时非常有用。

  RewriteLog logs/rewrite.log
  RewriteLogLevel 4

http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteloglevel了解更多信息。

相关内容