如何在IP地址之前删除www

时间:2015-03-12 20:30:42

标签: php .htaccess url-rewriting dns ip

我使用htaccess将我的网站从非www重定向到www,

.htaccess文件配置

Options +FollowSymLinks
Options -Indexes
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

因此,我的域名将重定向到www.website.com而不是website.com

但问题出现在我使用IP地址访问网站时,它正在向www这样的IP地址添加http://www.192.168.0.0/。如何删除IP之前的www?

DNS

 A        @       <IP> 

CNAME     *       <www.website.com>

3 个答案:

答案 0 :(得分:1)

如果此htaccess规则仅用于一个站点,则可以使用域名而不是变量。如下所示。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=301,L]

答案 1 :(得分:1)

您可以添加条件以确保IP地址不会发生www

Options +FollowSymLinks -Indexes
RewriteEngine on

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^\d{1,3\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

答案 2 :(得分:0)

要解决的问题并不多,但很少。在这种情况下,您应该以不同方式指定mod重写;您可能希望集成{HTTP_HOST}进行域名检测;如果这适用于一个域名,我会离开并按原样尝试。

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

这不会重定向IP地址。