通过apache重写规则进行永久重定向

osh*_*nen 5 apache mod-rewrite redirect

我正在尝试编写一条规则来永久地将域名重定向到另一个域名

RewriteCond %{HTTP_HOST} ^www.companyname1.com$
RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这仅在用户记得键入www时才有效,如果用户未在URL中键入www,则页面将加载但图像链接将被破坏.

有没有人知道如何调整上述规则,无论是否使用www?

我在redhat上使用LAMP配置,apache 2.

Dem*_*nto 10

您可以使用[OR]提供多个可选的重写条件:

RewriteCond %{HTTP_HOST} ^www.companyname1.com$ [OR]
RewriteCond %{HTTP_HOST} ^companyname1.com$
RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这应该可以解决问题.第一个重写条件触发,如果存在www,则第二个触发,如果www已被遗忘.

  • 符号名称[R =永久]"而不是数字301略微更优,因为它将避免您的配置混淆.来自http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html使用:" RewriteRule ^(.*)$ http://www.companyname2.com/$1 [R = permanent,L]" (2认同)