使用域作为通配符重定向到www子域

时间:2015-08-27 10:07:58

标签: regex apache .htaccess mod-rewrite redirect

我有10个域都指向一个目录。我需要所有这些都没有www重定向网址301。有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中定义 - 我正在尝试做更像

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

即,如果HTTP_HOST不以www开头。然后重定向。我相信我对[^^www.%]做错了。我认为[^ ]表示'不',^ %包含字符串,因此[not[www.]]

我已经阅读了很多apache mod重写文档,似乎无法弄清楚

我当前的全部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]

非常感谢

0 个答案:

没有答案