如何从www.domain.com重定向到domain.com?

时间:2012-05-19 01:12:55

标签: apache

我在httpd.conf中使用以下代码进行重定向:

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

但是,它最终会重定向到www.domain.com/domain.com//domain.com//domain.com

我希望以下所有网址都重定向到domain.com:

http://domain.com
http://www.domain.com
www.domain.com

4 个答案:

答案 0 :(得分:9)

这应该这样做。问题是它看起来非常像你已经拥有的。在浏览器中键入http://domain.com时,它是否有效?或者它是否重定向到其他地方?

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule ^(.*)$ http://domain.com$1 [R=permanent,L]

答案 1 :(得分:1)

http://www.webweaver.nu/html-tips/web-redirection.shtml建议

Options +FollowSymLinks 
RewriteEngine on
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^example\.com
RewriteRule (.*) http://example.com/$1 [R=301,L]

答案 2 :(得分:1)

RewriteEngine On

# Redirect ANY non-www request to https and www
RewriteCond %{HTTP_HOST} !^(www.\.domain\.com)?$

RewriteRule (.*) https://www.domain.com/$1 [R=301,L]

# Redirect ANY HTTP request to https and www
RewriteCond %{SERVER_PORT} !443

RewriteRule (.*) https://www.domain.com/$1 [R=301,L] 

答案 3 :(得分:0)

对于SSL虚拟主机,请使用以下内容:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com
RewriteRule ^(.*)$ https://yourdomain.com$1 [R=301,L]

下面的完整示例:

<VirtualHost *:443>
    ServerAdmin youname@yourdomain.com
    DocumentRoot "/var/www/html/yourdomain"
    ServerName yourdomain.com
    ServerAlias  www.yourdomain.com *.yourdomain.com
    ErrorLog "logs/yourdomain-error_log"
    CustomLog "logs/yourdomain-access_log" common
    ErrorDocument 404 /index.php
    <Directory "/var/www/html/yourdomain">
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Allow from all
    </Directory>
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/yourdomain/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/yourdomain/chain.pem
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com
    RewriteRule ^(.*)$ https://yourdomain.com$1 [R=301,L]
</VirtualHost>