[英]Mod rewrite - Dynamic $_GET rewrite
無論如何使用ModRewrite來實現以下目的:
初始網址: http : //example.com/page?value = test
經過重新修改的網址: http : //example.com/page/value/test
要么
初始網址: http : //example.com/page?value = test&fruit = apple
經過重新修改的網址: http : //example.com/page/value/test? fruit = apple
我需要這個規則是動態的,因為我不知道它將用於所有頁面,我還需要在PHP中保留$ _GET變量。
謝謝
如果所涉及的URL存儲在數據庫中,則需要重寫該問題,直到可以更新內容以反映新的URL模式為止。 其中,為了澄清問題,將被視為重定向不重寫,因此改善SEO。 然后,正如上面的注釋指出的那樣,然后可以重寫 URL以向PHP提供正確的URL參數。 如果這是詹姆斯的意圖,下面的配置將有助於:
### 301 redirect old query string URLs to pretty URLs
### This will help search engines index the new URLs,
### not ones that are linked in content
### This is rather messy due to the
### http://example.com/page/value/test?fruit=apple example
RewriteCond %{QUERY_STRING} value=([^&]*)
RewriteRule (.*) /page/value/%1 [R=301,E=rewrite:true]
RewriteCond %{ENV:rewrite} true
RewriteCond %{QUERY_STRING} !&
RewriteRule (.*) $1? [R=301,L]
RewriteCond %{ENV:rewrite} true
RewriteCond %{QUERY_STRING} &([^=]*)=(.*)$
RewriteRule (.*) $1?%1=%2 [R=301,L]
### Rewrite pretty urls with usable parameters
### [QSA] will maintain extra params such as &fruit=apple
RewriteRule /page/value/(.*) /page.php?value=$1 [QSA]
這很麻煩,但是我遇到了類似的情況,在這種情況下,重定向存儲在數據庫中的舊URL是必要的,直到內容可以更新。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.