2017-02-19 112 views
3

我不是很有經驗的htaccess的。今天我沒有寫一個.htaccess來重寫url。htaccess的規則重寫子文件夾到一個GET變量

我想要什麼: 我的項目是區域上的託管例如sub.domain.com

我的htaccess應該管理:

  1. sub.domain.com應該重定向到www.domain.com(重定向301,這是明確的)
  2. 子應該放在爲GET變量如sub.domain.com/testwww.domain.com?var=test
  3. 子文件夾/admin不應事先被重定向

感謝的提示!

回答

2

這應該爲你做它:

RewriteEngine on 
RewriteCond %{HTTP_HOST} =sub.example.com 
# Following condition added to support changed requirement, see comments 
RewriteCond %{QUERY_STRING} !(?:^|&)var= 
RewriteCond %{REQUEST_URI} !^/admin/ 
RewriteRule ^(.*)$ http://www.example.com/?var=$1 [R=301,L] 

這將下降,這是在原請求的任何查詢字符串。如果您想保留任何查詢字符串,並加上「VAR = ...」給它,然後在最後一行的末尾,用逗號隔開添加QSA的標誌。

+0

謝謝@SuperDuperApps 最後重定向工作,但有一件事:看起來請求重定向多次,並且url看起來像sub.example.com/?var=&var=&var=&var=&var=&var =&var =&var =&var =&var =東西 –

+0

不客氣Stefan。請考慮acceptng我與它的左上角蜱答案,所以這個問題顯示了回答,我得到了一點代表的:)歡迎堆棧溢出:) – SuperDuperApps

+0

有一件事如上所述。 RewriteEngine RewriteCond%{HTTP_HOST} = sub.domain.com RewriteCond%{REQUEST_URI}!^/admin/ RewriteRule^$ \ /(。*)$?e = $ 1 [QSA,R = 301,L] 會導致類似於: /?e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e =&e = &E = VAL 似乎頁面重定向多次......(對不起,打擾你吧:)) –