2017-06-13 44 views
0

我在重定向一些網址時遇到了問題,下面有很多不同的貓品種的網址。任何人都可以幫助解決此問題。包含問號的htaccess url重寫網址

範例網址重定向:

http://www.exampledomain.co.uk/cats/database.nsf/catsforsale!openform?Breed=Persian 

我希望它重定向到以下網址。我的PHP腳本,然後應該做一些更復雜的重定向,使整齊的網址:

http://www.exampledomain.co.uk/display_pets.php?pettype=Cats&petbreed=Persian 

我試過下面的重寫,但它不工作,它只是不重定向可言,我認爲它可能有事可做與? :

RewriteRule ^/cats/database.nsf/catsforsale!openform?Breed=(.*)$ display_pets.php?pettype=Cats&petbreed=$1 [L] 
+0

重寫規則只有URL的路徑組件相匹配。如果你想檢查查詢字符串的內容,你需要使用RewriteCond。 – CBroe

回答

0

RewriteRule通常不會查詢查詢字符串。

您需要在重寫中使用QSA標誌。它結合了查詢字符串並將其附加到目標url。

你可以嘗試以下方法:

RewriteRule ^(.*)$ display_pets.php?url=$1 [L] 

這將整個源URL傳遞到目標網址的網址參數。它還會將源url的查詢字符串附加到目標url。

另一種選擇是匹配RewriteCond中的查詢字符串。

RewriteCond %{QUERY_STRING} url=(.*) 
RewriteRule ^/cats/database.nsf/catsforsale!openform$ display_pets.php?pettype=Cats&petbreed=%1 [L] 

參見以下鏈接:

RewriteRule FlagsManipulating the Query String