簡體   English   中英

Mod重寫 - 動態$ _GET重寫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM