htaccess将所有内容重定向到除IP以外的www

时间:2013-12-11 17:33:08

标签: .htaccess redirect web ip

我的所有网站页面网址都被重定向到开头有一个www。所以,如果有人输入http // xyz.com,它会自动将其设为http // www.xyz.com。这对我来说没问题。但主要的问题是,如果有人输入123.234.111.121,它会再次在开头放一个www,这是错误的。我如何解决它?在这方面的任何帮助都非常感谢。

我目前的设置如下

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

我甚至试过这个......

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^50\.56\.246\.162
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

但是,它仍然不起作用

2 个答案:

答案 0 :(得分:0)

您可以使用此规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^[0-9]+\.
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

如果您提供访问网站的IP地址,则此条件RewriteCond %{HTTP_HOST} !^[0-9]+\.将跳过此规则。

答案 1 :(得分:0)

anubhava建议的上述规则对我也不起作用。我谷歌周围,并得到了这个答案。

  RewriteCond %{HTTP_HOST} .
  RewriteCond %{HTTP_HOST} !^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$
  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]