2016-03-23 299 views
1

我一直在爲這個問題折磨近2個小時。htaccess重寫網址名稱

我有一個網站(讓我們稱之爲example.com) 我需要重寫這個網址:

example.com/plant.php?naam=Brahea%20Armata

example.com/Brahae_Armata

這是我的.htaccess文件看起來像ATM:

RewriteEngine On 
RewriteCond %{HTTP_HOST} example.com/plant.php?naam=$ [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

這是行不通的。任何人都知道問題是什麼?

+0

能有URL中有多個'%20'? – anubhava

+0

不,我不認爲我會在一個URL中擁有兩個空格。 – Laurenz

回答

1

可以在根的.htaccess使用這些規則:

RewriteEngine On 

RewriteCond %{THE_REQUEST} /plant\.php\?naam=(.*)\%20(\S*)\sHTTP [NC] 
RewriteRule^/%1_%2? [NE,R=301,L] 

RewriteCond %{THE_REQUEST} /plant\.php\?naam=(.*)\sHTTP [NC] 
RewriteRule^/%1? [NE,R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.+) page.php?name=$1 [QSA,L] 
+0

某些頁面在URL中不包含空格。 使用下面的代碼是否正確? RewriteCond%{THE_REQUEST} /plant\.php\?naam=(.*)\sHTTP [NC] RewriteRule^/%1? [NE,R = 301,L] – Laurenz

+0

是的,檢查我更新的答案以及 – anubhava