我一直在使用Google地獄,因爲我遇到了問題,到目前爲止我沒有找到任何可行的方法。.htaccess:使用RewriteCond的域名
我所擁有的是一個Drupal多站點安裝,我正嘗試爲移動設備設置重定向。要開始,我有10個域只有一個公共字符串www。我想要的是檢查瀏覽該網站的設備是否爲移動設備(我正在使用AMF成功完成此操作),並確保訪問者尚未在移動版本m.domain.tld上。如果一切都很好,那麼我需要將用戶重定向到移動子域。
這樣做每個領域作品使用如下:
RewriteCond %{ENV:AMF_DEVICE_IS_MOBILE} ^true$
RewriteCond %{ENV:AMF_DEVICE_IS_TABLET} !^true$
RewriteCond %{HTTP_HOST} !^[m.]+mysite.com$
RewriteRule (.*) http://m.mysite.com/$1 [R=301,L]
我不知道,不過,想擁有這些區塊的10(1爲每個域)我也不希望有創建另一個塊每我們創建一個新網站。
我讀過,你可以在RewriteCond模式中使用()使匹配模式中的一個var。不幸的是,我不認爲我正在做我的模式或東西,因爲當我嘗試下面它重定向到M.隨後是uri的請求。
爲了簡潔起見,我將略去AMF條件。
RewriteCond %{HTTP_HOST} !^[m.]+([^.]\.[com|net|org])$
RewriteRule (.*) http://m.%1/$1 [R=301,L]
從我讀的,%1應該匹配我的模式從RewriteCond,但它不匹配任何東西。這讓我覺得我的模式是錯誤的。我嘗試將([^。]。[com | net | org])更改爲(。*),但得到相同的問題,它只是重定向到m ..
我正確地假設我的模式是錯誤的如果是的話,我應該使用什麼?我試圖做甚至可能嗎?
需要明確的是,我的域在形式:
www.domain.com
www.anotherdomain.net
somedomain.org
www.maybeanotherdomain.com
在我的例子中,我有R = 301的標誌,但是在測試中,我將其從瀏覽器中清除了很多數據,每次我測試mak我確定我正在接受新規。
在此先感謝您的幫助!
太棒了!我從來沒有看到任何提及你以前不能這樣做的事情。太感謝了! :D – 2012-07-11 18:16:55
@JasonGray如果有反向引用的方法,我不知道它是如何完成的,但只是像'!(表達式)'這樣的東西不起作用。 – 2012-07-11 18:22:27