2016-01-28 17 views
0

我有一個網址設置像這樣htaccess的從一個子域名獲取值並重定向到新的URL

sub.domain.com/leaderboards/showlist/APPNAME/SCORE/DEVICEID

我試圖使用在該網站不是子域的根htaccess的要轉寄該網址到

domain2.com/get/APPNAME/leaderboards/SCORE/DEVICEID

我能夠得到這個,當我使用工作此代碼在子域htaccess

0123中
RewriteRule ^showList/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ http://domain2.com/get/$1/leaderboard/$2/$3/ [NC,L] 

然而,這並不在根htaccess的工作,所以我嘗試了一切我在網上找到了一點點,我無法弄清楚如何獲得PARAMS像上面。這是它目前的樣子,並沒有在所有

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC] 
RewriteRule ^showList/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ http://domain2.com/get/$1/leaderboard/$2/$3 [NC,L] 

從我瞭解的RewriteCond應該只包括人們對分領域和規則做任何事情應該工作一樣,它的子域名確實htaccess的權利?

回答

0

我認爲你遇到的問題是,現在你有.htaccess文件在不同的目錄。

該指令RewriteRule相對於當前目錄的比賽讓我們說,子域是一個名爲sub文件夾,這是父目錄(現在包含的.htaccess)下,你需要使用RewriteRule ^sub/showList我相信相匹配。

另一種方法,你可以做到這一點簡單的做法是在RewriteCond%{REQUEST_URI}做匹配,然後使用%反向引用來引用這些匹配。看下面的例子:

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/showList/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ 
RewriteRule .* http://domain2.com/get/%1/leaderboard/%2/%3 [NC,L] 
+0

嗯,我看到你在做什麼,我想我完全理解,但不管我做什麼,我不斷收到: 所請求的網址/排行榜/ showList/APPNAME/SCORE /在此服務器上找不到DEVICEID。 此外,嘗試使用ErrorDocument處理請求時遇到404未找到錯誤。 – Dave

+0

@Dave哦,你錯過了'R'來重定向它。嘗試將'[NC,L]'改爲'[NC,L,R]'。在你完成開發並知道它的工作之後,如果這應該是一個永久重定向(對SEO很有用),你可以使用'[NC,L,R = 301]' – sa289

相關問題