2010-10-20 36 views
1

我試圖重定向,看起來像正則表達式測試程序的工作而不是在.htaccess

'accommodation/destination.php?code=108459&destination=Yang+Chum+Noi' 

正則表達式我使用的是網址:

(^accommodation/destination\.php\?code=([0-9]+)&destination=([^/]+)$) 

...工作正常在我的正則表達式測試中,但是當我在.htaccess文件中使用它時,它不起作用。

我在這裏錯過了什麼嗎?

回答

2

你不需要逃避斜線,但重點。並且RewriteRule在詢問點之後不關心字符,所以你必須使用QSA標誌。

但是這個重定向看起來很奇怪,你如何在你的htaccess中使用這個正則表達式?

+0

是的一些不必要的逃脫,我會在它工作時將它們取出。我使用捕獲的代碼重定向到另一個URL – Chaoley 2010-10-20 08:44:53

+0

您忘記了QSA,它不是用於隱藏GET參數的htaccess重定向方式。 – MatTheCat 2010-10-20 08:51:03

+0

實際上,這個重定向來自一箇舊的URL,它使用GET參數到一個新的URL,並且被處理在當前行的下面。我正在檢查QSA的文檔,但似乎不適用,因爲我沒有傳遞查詢字符串。 – Chaoley 2010-10-20 09:00:01

2

^住宿/ destination.php \?代碼=([0-9] +)&目的地=([^ /] +)$

測試我的服務器上,它應該工作。

不,不,它不應該工作。因此,這裏是東西,將工作,雖然:

RewriteCond %{QUERY_STRING} ^code=([0-9]+)&destination=([^/]+)$ 
RewriteRule ^accomodation/destination\.php$ your.php [L] 
+0

它應該,但它不是在我的服務器,開發或生產,其他正則表達式工作正常 – Chaoley 2010-10-20 08:48:54

+0

這看起來喜歡它應該工作,但它不是,這是讓我發瘋的 – Chaoley 2010-10-20 09:10:07

+0

你可以粘貼整個規則,因爲它是在你的htaccess? – kapa 2010-10-20 09:21:14

相關問題