我的所有网站页面网址都被重定向到开头有一个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]
但是,它仍然不起作用
答案 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]