我的網站用來產生這樣的網址:重定向特定的URL變量
/data.php?s=1432862823&type=basic
我已經修改了程序,以便產生新的網址是:
/d.php?s=1432862823&t=basic
由於一些人有書籤的舊網址我想寫一個重寫規則,讓他們到新的網址。
我已經不是這個至今:
RewriteEngine on
RewriteRule "^/data\.php$" "/d.php"
,但我無法弄清楚如何計算的變量。
我的網站用來產生這樣的網址:重定向特定的URL變量
/data.php?s=1432862823&type=basic
我已經修改了程序,以便產生新的網址是:
/d.php?s=1432862823&t=basic
由於一些人有書籤的舊網址我想寫一個重寫規則,讓他們到新的網址。
我已經不是這個至今:
RewriteEngine on
RewriteRule "^/data\.php$" "/d.php"
,但我無法弄清楚如何計算的變量。
試試這個:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^s=([^&]+)&type=([^&]+) [NC]
RewriteRule ^data.php$ /d.php?s=%1&t=%2 [NC,R,L]
這將外部重定向請求:
/data.php?s=foo&type=bar
到
/d.php?s=foo&t=bar
非常棒!非常感謝你的工作,就像一個魅力。 只有一點點改變,我注意到我必須做出。類型變量有兩個值「basic」或「pro」。我已經改變了基本b和親p。 請你能告訴我如何將這個寫入重寫中。 換句話說/data.php?s=1432862823&type=basic將不得不成爲/d.php?s=1432862823&t=b – Ron
編輯:我道歉,我現在才發現您已將type
參數更改爲t
。因此,除非查詢字符串參數沒有更改的URI,否則此解決方案不適合您的需求。我在這裏留下這個答案,以便其他人可以從中學習 - 你會驚訝有多少人不知道查詢字符串會自動轉移到新的目的地。因此,斯塔肯的答案是正確的答案。
你可以按照Starkeen的解決方案,具體檢查查詢字符串,並明確地把它添加到d.php
。另外,爲了簡單起見,你可以只使用這樣的:
RewriteEngine on
RewriteRule ^data.php$ /d.php [R=302,L]
查詢字符串將自動從data.php
轉移到d.php
,你會被重定向相應。
要使瀏覽器和搜索引擎永久性地重定向並緩存,請將302
更改爲301
。
是的,使用重寫/重定向。 IIS:https://technet.microsoft.com/en-us/library/cc732969(v=ws.10).aspx Apache:http://httpd.apache.org/docs/2.4/rewrite/remapping.html – chris85
謝謝,我正在使用apache並讀取您發送的文檔。從上面的例子可以看出這是正確的:'code'RewriteEngine on RewriteRule「^/data \ .php?member = $」「/d.php?m=」'code' – Ron
用代碼更新你的問題已經寫了。 – chris85