我使用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>
答案 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地址。