2014-10-08 31 views
0

試圖在一個的.htaccess來處理多個潛在的重寫在.htaccess合併多個可選變量重寫

每個子應解析到一個文件夾 每個/ A /用戶名應解析爲/ A =用戶名

我有每個規則自己的工作。但我無法弄清楚如何讓他們同時工作。


例子(現在的工作):

  • www.domain.com - >無變化
  • black.domain.com - > www.domain.com/black(作品)
  • white.domain.com - > www.domain.com/white(作品)
  • www.domain.com/a/username - > www.domain.com/?a=username(作品)

我需要得到工作:

  • white.domain.com/a/username - > www.domain.com/white/?a=username(失敗 - 只變成www.domain。 COM /白色)
  • black.domain.com/a/username - > www.domain.com/black/?a=username(失敗 - 只變成www.domain.com/black)

RewriteEngine on 
RewriteRule ^index\.php?$/[NC,R,L] 

#RewriteRule ^(.*).domain.com$ http://www.domain.com/$1 [QSA,R=302,L] 

RewriteCond "%{HTTP_HOST}" !^www.* [NC] 
RewriteCond "%{HTTP_HOST}" !^admin.* [NC] 
RewriteCond "%{HTTP_HOST}" !^mail.* [NC] 
RewriteCond "%{HTTP_HOST}" !^email.* [NC] 

RewriteCond "%{HTTP_HOST}" ^([^\.]+).domain.*$ 
RewriteRule ^(.*)$ http://www.domain.com/%1 [R=302] 

RewriteRule ^a/(.*)$ http://www.domain.com/%1?a=$1 [R=302,L] 

回答

1

嘗試更改您的規則到:

RewriteEngine on 
RewriteRule ^index\.php?$/[NC,R,L] 

#RewriteRule ^(.*).domain.com$ http://www.domain.com/$1 [QSA,R=302,L] 

RewriteCond "%{HTTP_HOST}" !^www.* [NC] 
RewriteCond "%{HTTP_HOST}" !^admin.* [NC] 
RewriteCond "%{HTTP_HOST}" !^mail.* [NC] 
RewriteCond "%{HTTP_HOST}" !^email.* [NC] 
RewriteCond "%{HTTP_HOST}" ^([^\.]+).domain.*$ 
RewriteRule ^$ http://www.domain.com/%1 [R=302] 

RewriteCond "%{HTTP_HOST}" !^www.* [NC] 
RewriteCond "%{HTTP_HOST}" !^admin.* [NC] 
RewriteCond "%{HTTP_HOST}" !^mail.* [NC] 
RewriteCond "%{HTTP_HOST}" !^email.* [NC] 
RewriteCond "%{HTTP_HOST}" ^([^\.]+).domain.*$ 
RewriteRule ^a/(.*)$ http://www.domain.com/%1?a=$1 [R=302,L] 
+0

謝謝,讓我99%固定! – srt8driver 2014-10-08 00:28:13

+0

這是行不通的:www.domain.com/a/username-> www.domain.com/?a=username所以我加了.. – srt8driver 2014-10-08 00:28:40

+0

RewriteRule^a /(.*)$ http://www.domain。 com /%1?a = $ 1 [R = 302,L]在你的版本之後,它一切正常 – srt8driver 2014-10-08 00:29:23