我有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]
非常感谢