我正在尝试编写一条规则来永久地将域名重定向到另一个域名
RewriteCond %{HTTP_HOST} ^www.companyname1.com$
RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R=301,L]
这仅在用户记得输入www时才有效,如果用户未在网址中输入www,则会加载页面,但图片链接将被破坏。
有没有人知道如何调整上述规则,使用和不使用www?
我正在使用LAMP配置,在redhat上使用apache 2.
答案 0 :(得分:10)
您可以使用[OR]提供多个可选的重写条件:
RewriteCond %{HTTP_HOST} ^www.companyname1.com$ [OR]
RewriteCond %{HTTP_HOST} ^companyname1.com$
RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R=301,L]
这应该可以解决问题。第一个重写条件触发,如果存在www,则第二个触发,如果www已被遗忘。
答案 1 :(得分:2)
重定向对我不起作用,我不得不调整它,下面是基于@Demento答案的工作版本。
# Parmenent redirect to webdesign.danols.com of all pages
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.kingston-web-design.com [OR]
RewriteCond %{HTTP_HOST} ^kingston-web-design.com
RewriteRule ^(.*)$ http://webdesign.danols.com.com$1 [R=301,L]
答案 2 :(得分:1)
如果您不关心主机名的起源,请不要使用正则表达式,只需检查它是否以companyname1.com结尾。
至于前导斜杠,只需将其作为可选项添加到正则表达式的根目录中。
RewriteCond %{HTTP_HOST} companyname1.com$
RewriteRule ^/?(.*) http://www.companyname2.com/$1 [R=permanent,L]
答案 3 :(得分:0)
或者仅通过使用简单的正则表达式即可:
RewriteCond %{HTTP_HOST} ^(www.)?companyname1\.com$
RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R=301,L]