2014-01-08 93 views
1

我正在嘗試重新編寫動態生成的URL。但我寫的規則並不影響URL甚至一個位。Rewrite-dynamic URL .htaccess

的URL目前顯示像:http://ukfurniturespecialist.co.uk/county.php?c=Oxfordshire&%20t=Faringdon

,我想它看起來像:​​

這是我曾嘗試:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule county-c-(.*)-%20t-(.*)\.html$ county.php?c=$1&%20t=$2 

任何幫助非常感謝,謝謝。

+0

爲什麼那裏有'%20'?如果你只是:'^縣-c - (。*)$'它是否去'county.php'? – Halcyon

+0

我認爲'%xx'代碼被轉換爲它們的實際字符,但我不是100%確定的。在這種情況下,您需要匹配'\'。 – Sumurai8

+0

@FritsvanCampen:不,它不是:( – Jinandra

回答

1

對於您的網址下面的規則應該工作:

RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} \s/+county\.php\?c=([^&]*)&.*?t=([^&\s]*) [NC] 
RewriteRule^county-c-%1-t-%2.html? [R=302,L] 

RewriteRule ^county-c-([^-]+)-t-([^.]+)\.html$ county.php?c=$1&\%20t=$2 [L,QSA,NE] 
+0

嗨Anubhav很高興在這裏有像你這樣的人anubhavi;)。但我已經嘗試過你提出的建議,並且仍舊獲得相同的舊網址。 – Jinandra

+0

好的,檢查我的更新代碼,並將其放在'DocumentRoot/.htaccess'中。 – anubhava

+0

我已經放置了更新的代碼並將其放入根目錄中。這真的很奇怪,我仍然得到相同的舊網址。我是否缺少需要檢查的東西,我的意思是我已經嘗試了在這篇文章中的每個stackoverflower在這裏提出的建議,結果始終是舊的url。 – Jinandra

1

%20代表URL一個空格字符。寫作重寫規則的網址已經被解碼時,用「\」處理了,而不是%20

爲了您的URL重寫規則應該是

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule county-c-(.*)-\ t-(.*)\.html$ county.php?c=$1&\ t=$2 

我不認爲你需要把空格字符在您的網址。如果您從網址中刪除%20,則重寫規則應爲

RewriteRule county-c-(.*)-t-(.*)\.html$ county.php?c=$1&t=$2 
+0

感謝您在此發佈ZubaiR。這真的很奇怪,我仍然得到相同的舊網址。我是否缺少需要檢查的東西,我的意思是我已經嘗試了在這篇文章中的每個stackoverflower在這裏提出的建議,結果始終是舊的url。 – Jinandra

+0

放置此代碼後,你的兩個網址應該工作。即從您的瀏覽器,您將能夠訪問http://ukfurniturespecialist.co.uk/county-c-Oxfordshire-t-Faringdon.html和http://ukfurniturespecialist.co.uk/county.php?c=Oxfordshire& %20t = Faringdon – ZubaiR

+0

這兩個網址都正常工作。這不是問題所在。問題是URL隱式顯示在瀏覽器中是第二個。 – Jinandra