2013-11-01 68 views
0

我有一個困難的情況,我需要用「?」重寫一個url。 &「id」爲友好的網址。htacces重寫URL? &id's

下面是實際的網址
http://www.example.com/services.html?sr=1
http://www.example.com/services.html?sr=2
http://www.example.com/services.html?sr=3
http://www.example.com/services.html?sr=4

我需要將其更改爲這樣的事情。
http://www.example.com/services/car-dealers.html
http://www.example.com/services/restaurent.html
http://www.example.com/services/nonprofit.html
http://www.example.com/services/school.html

我htacces代碼

<IfModule mod_rewrite.c> 

     RewriteEngine On 

     RewriteRule ^services/car-dealers.html services.html?sr=1 [L] 
     RewriteRule ^services/restaurent.html services.html?sr=2 [L] 
     RewriteRule ^services/nonprofit.html services.html?sr=3 [L] 
     RewriteRule ^services/school.html services.html?sr=4 [L] 

     RewriteBase/
     RewriteRule ^index\.php$ - [L] 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteRule . /index.php [L] 

    </IfModule> 

我使用WordPress作爲CMS的。任何可能性?

回答

0

這裏是實現這一目標的情況下sr=1的解決方案,這樣做對其他URL

RewriteCond %{ENV:REDIRECT_STATUS} !200 
RewriteCond %{QUERY_STRING} ^sr=1$ 
RewriteRule ^services\.html$ /services/car-dealers.html [NC,R=301,L] 

RewriteRule ^services/car-dealers services.html?sr=1 [L,NC] 

,以避免重複代碼對於您可以使用的每個網址RewriteMap,您首先創建一個包含鍵值對的txt文件這樣的:

car-dealers 1 
restaurent 2 
nonprofit 3 
school 4 
1 car-dealers 
2 restaurent 
3 nonprofit 
4 school 

然後在您的htaccess:

RewriteMap name2id txt:/etc/apache2/name2idmap.txt 

RewriteCond %{ENV:REDIRECT_STATUS} !200 
RewriteCond %{QUERY_STRING} ^sr=([0-9]+)$ 
RewriteRule ^services\.html$ /services/${name2id:%1} [NC,R=301,L] 

RewriteRule ^services/(.+?)\.html services.html?sr=${name2id:$1} [L,NC] 
0

試試這個:

RewriteEngine on 

RewriteRule ^services/car-dealers services.html?sr=1 [NC] 
RewriteRule ^services/restaurent services.html?sr=2 [NC] 
RewriteRule ^services/nonprofit services.html?sr=3 [NC] 
RewriteRule ^services/school services.html?sr=4 [NC] 

還可以訪問http://www.example.com/services/car-dealers

+0

感謝您的回答。但它沒有爲我工作。 http://dev.sreejesh.in/test/services.html?sr=1不重定向。 使用以下htacces代碼 RewriteEngine敘述上 重寫規則^服務/樣品services.html?SR = 1 [NC] Sree

+0

重定向是不是在問題。如果你看看http://dev.sreejesh.in/test/services/sample,你會看到它的工作原理。只需改變你的所有鏈接到新的乾淨的:) – GameDevGuru