我正在嘗試爲網站設置重寫規則,但目前有一個問題。 目前,這是在本地設置的,用於測試。mod_rewrite規則問題
安裝程序是一個主要的根文件夾,其中有一些子文件夾,其中一些是子域。子域已經映射到httpd.conf中,並且它們正常工作。
example.com
sub.example.com
something.example.com
...
用下面的文件夾結構:
C:/website
C:/website/css
C:/website/images
C:/website/sub (subdomain)
C:/website/something (subdomain)
所以,在「網站」文件夾中的文件被example.com使用,也文件夾不能映射爲子域。在每個子域中都有每個子域使用的特定文件,但是他們也使用父目錄中的一些常用文件(與問題無關)。對於主要網站(以及子域),一切都通過index.php文件(已經通過重寫規則解決),因此不能直接訪問其他文件(也不是很相關)。
所以,我現在的問題是,如果訪問不帶'WWW'(sub.example.com)的子域,那很好。如果通過'www'(http://www.sub.example.com)訪問,它會轉到主站點。
這裏是我的.htaccess文件(重寫規則):
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteRule \.(css|jpe?g|gif|png|js)$ - [L]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteRule ^([^/\.]+)/?$ /index.php?cmp=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cmp=$1&page=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?cmp=$1&subsection=$2&page=$3 [L]
一點需要注意:主控制器(的index.php)幾乎相同的概念將是子域,所以大部分這些規則在子域的.htaccess文件中。
任何幫助表示讚賞。