繁体   English   中英

重定向到以域名为通配符的www子域名

[英]Redirect to www subdomain with domain as wildcard

我有10个域都指向一个目录。 我需要所有这些都指向不带www的301重定向URL。 拥有www。 例如:

http://domain1.com/foo.php -301-> http://www.domain1.com/foo.php

我已经通过正常的htaccess达到了这个要求

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

理想情况下,不会在htaccess中定义域和TLD-我正尝试做更多类似的事情

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

即,如果HTTP_HOST不是以www开头。 然后重定向。 我相信[^^www.%]在我做错的部分。 我以为[^ ]意思是'not',而^ %包含一个字符串,因此[not[www.]]

我已经阅读了很多关于Apache mod rewrite的文档,但似乎无法弄清楚

我目前的完整htaccess:

RewriteEngine On

# Force www.
RewriteCond %{HTTP_HOST} ^domain1.com$
RewriteRule ^(.*)$ "http\:\/\/www\.domain1\.com\/$1" [R=301,L]

# Don't user-friendly remap resource files
RewriteCond %{REQUEST_FILENAME} ^.*^.ico$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.css$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.js$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.gif$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.png$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.jpg$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.jpeg$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.xml$$ [OR]
RewriteCond %{REQUEST_FILENAME} ^.*^.txt$$
RewriteRule ^(.*)$ $1 [L]

# Remap /page/filter/?query to /index.php?page=page&filter=filter&query
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([^/]+)/*([a-zA-Z0-9-]*)/?$ /index.php?page=$1&filter=$2 [QSA]

非常感谢

将您的force www规则更改为:

# Force www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]

这会将www强制到您所有的域。 清除浏览器缓存后,请确保对其进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM