2014-09-27 55 views
1

我試圖通過的.htaccess重寫以下URL重寫的網址:如何通過htaccess的

http://website.com/dealer_home.php?id=dealer1 

我的目標是爲這個,在dealer1是被設定爲變量名的結果:

http://website.com/dealer1 

我曾嘗試在.htaccess這個規則:

RewriteEngine On 
RewriteRule ^([^/]*)$ /dealer_home.php?id=$1 [L] 

但是我得到 「內部服務器錯誤」 MES當試圖加載任何網站頁面時,聖人。

你能提供一些建議,我做錯了嗎?

編輯: 我也試過RewriteRule ^(.*)$ dealer_home.php?id=$1 [PT]但沒有成功。

謝謝!

回答

0

也許這是與現有的文件/文件夾和root uri的衝突。
試試這個代碼,而不是

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)$ /dealer_home.php?id=$1 [L] 

此規則將每個URL匹配一樣domain.com/something如果something是不是現有的文件或文件夾。
所以如果你有其他規則,那麼你應該把它們放在這個之上。


編輯:避免重複的內容和舊格式重定向到新的URL格式

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/dealer_home\.php\?id=([^&\s]+)\s [NC] 
RewriteRule^/%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)$ /dealer_home.php?id=$1 [L] 
+0

我認爲你是正確的方式,因爲現在的網頁加載確定。問題是URL沒有被改變。 – BradG 2014-09-27 11:57:27

+0

此規則現在允許您使用'http:// website.com/dealer1',但它不會將http://website.com/dealer_home.php?id = dealer1'重定向爲新的url格式。這是你想要的嗎? – 2014-09-27 11:59:56

+1

啊啊這麼愚蠢,我忘了改變URL重定向。謝謝,現在所有的作品都很棒! – BradG 2014-09-27 12:03:18