我遇到的問題是我需要匹配並替換URL中的特定字符串,而不是在查詢字符串變量的標準點進行分割,並僅使用第二部分pagevars變量用於預期的URL。使用mod_rewrite替換htaccess中的特定字符串
在我需要使用的.htaccess重定向此URL這種特殊情況:
http://example.com/details.php?pagevars=this-variable-id-WGZ8765
這樣:
http://example.com/item/id-WGZ8765
我遇到的問題是我需要匹配並替換URL中的特定字符串,而不是在查詢字符串變量的標準點進行分割,並僅使用第二部分pagevars變量用於預期的URL。使用mod_rewrite替換htaccess中的特定字符串
在我需要使用的.htaccess重定向此URL這種特殊情況:
http://example.com/details.php?pagevars=this-variable-id-WGZ8765
這樣:
http://example.com/item/id-WGZ8765
你必須使用RewriteCond
來分析查詢字符串,任何攝像圖案將作爲%N在RewriteRule
(正如在規則本身可作爲$ N攝像圖案:
RewriteCond %{QUERY_STRING} this\-variable\-id\-(.*)$
RewriteRule ^details\.php$ /item/id-%1 [L]
沿東西這行應該工作.. 。
RewriteCond %{QUERY_STRING} \-id\-([A-Za-z0-9]+)$
RewriteRule ^details\.php$ /item/id-%1 [L]
很難確定沒有更多關於原始URL中可能/不會改變的知識 - 這可能是因爲您需要改變正則表達式的錨定方式。
可以更改的URL的唯一部分是最後一部分在連字符之後,在這種情況下'WGZ8765' – 2013-03-01 11:21:18
有沒有一種模式,或者你只想重寫這個URL? – 2013-03-01 11:09:43
URL中唯一可以改變的部分是連字符後面的最後部分,在本例中爲'WGZ8765'。是一樣的 – 2013-03-01 11:27:52