2013-07-23 65 views
0


我試圖從重寫URL:QUERY_STRING和重定向

example.com/test/?var=somevalueexample.com/test/page1.html?var重寫URL = someValue中

example.com/test/som安勤/

下面是代碼

RewriteCond %{REQUEST_URI} test/$ 
RewriteCond %{QUERY_STRING} var=([a-z]*|[a-z]*\-[a-z]*)$ 
RewriteRule ^test/(.*)$ /test/%1/page1.html? [R=301,L] 

這對於目前僅適用於網址example.com/test/?var=somevalue什麼,我不能去工作的網址與網頁[1-9] [0-9] * \。HTML QUERY_STRING

+0

如此做路徑'/測試/ somevalue'實際存在的,或者是你想迫使查詢字符串形式的入站的網址被重定向到搜索引擎優化的形式,則仍然在內部改寫呢?請重新說明:1)您的最終用戶看到的URL 2)是否允許使用_only_最終用戶的URL 3)您的服務器最終接收和處理的URL是什麼 –

+0

最終用戶可以看到'/ test /','/ test /如果query_string包含var,那麼它將被重定向到'/ test /(var value)/ page1。 .html' – user1527484

回答

1
RewriteCond %{REQUEST_URI} test/(page[1-9][0-9]*\.html)?$ 

之前,我想這就是你要找的東西,拼湊你已經用你的底部描述的使用正則表達式的查詢。但我有點震驚你的重寫規則。我會期待更多的東西:

RewriteRule ^test/([^/?])*\?([^&]+&)*var=([^&]+) /test/%3/page1.html 

但我不寫那麼多RewriteRules,所以我可能是錯的。

+0

實際上這有助於'RewriteCond%{REQUEST_URI} test /([az] * \/| [az] * \ - [az] * \ /)(page [1-9] [0-9] * \ .html)?$' – user1527484

+0

我認爲這可能。它解決了你的問題嗎? – FrankieTheKneeMan

+0

是的,當我在發佈問題之前嘗試修復它時,完全忘記了安裝架。 謝謝大家的時間:) – user1527484

0

所以像這樣?

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /test/([^\?]*)\?var=([^&\ ]+)([^\ ]*) 
RewriteRule^/test/%3/%2?%4 [L,R=301]