2011-10-10 15 views
1

我现在htaccess的是这样的:htaccess的不正常

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?site\.com [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 
RewriteRule ^([^/\.]+)/([^/\.]+)?$ index.php?page=$1&subsectie=$2 
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)?$ index.php?page=$1&subsectie=$2&subid=$3 

我编辑的htaccess文件。它应该只使用这个htaccess的主域名,而不是子域名,但子域​​名仍然使用这个htaccess。

任何有比我更多经验的人都可以指出我朝着正确的方向走?提前致谢。

编辑: 这是我目前(和工作)的htaccess:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule ^([^/\.]+)/([^/\.]+)?$ index.php?page=$1&subsectie=$2 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC] 
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)?$ index.php?page=$1&subsectie=$2&subid=$3 

回答

6

试试这个:

RewriteEngine On 

# first, remove redirect to www by default if no subdomain 
RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule (.*) http://www.domain.com/$1 [R=301,L] 

RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] 
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [NC,L] 
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] 
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&subsectie=$2 [NC,L] 
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] 
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?page=$1&subsectie=$2&subid=$3 [NC,L] 
+0

谢谢!加工!不知道你每次都必须重新定义重写条件。我用我正在使用的htaccess编辑我的帖子。 – Devator

+0

不客气。同时将domain.com重定向到www.domain.com将删除很好的重复项目! –