2013-08-29 72 views
1

我有這個網址:http://localhost/design/oferta.php?tip=Restaurant&nume=Test&localitate=Calnic%20&judet=Alba&id=5206337cd1cef,我希望它看起來像這樣:http://localhost/design/oferta/Restaurant-Test-Calnic%20-Alba-5206337cd1cef.php。 我嘗試使用內部的.htaccess下面的代碼:mod_rewrite生成器不重寫網址

RewriteEngine On 
RewriteRule ^design/oferta/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)\.php$ /design/oferta.php?tip=$1&nume=$2&localitate=$3&judet=$4&id=$5 [L,R] 

它不重寫我的網址。我得到了我在http://www.generateit.net/mod-rewrite/找到的生成器生成的代碼。有什麼我失蹤?另外...這將工作的所有我的網址或只爲我指出的那個?我希望它適用於所有動態的「oferta?...」網址。當我嘗試訪問第二個url(我想要的那個)時,它顯示了一個404錯誤頁面。 .htaccess是應該創建的。我知道這個問題並不普遍,但我想我不是唯一使用這個小生成器的人。請讓我知道,以便在降級之前編輯我的問題。謝謝!

我剛剛編輯了我的第一個問題,以反映自我問了以後所做的一些更改。請花些時間再讀一遍這個問題。長話短說:我重新創建了我想要的URL代碼,但是使用了不同的期望URL。它現在生成一個404頁面。

+0

你在瀏覽器中輸入網址是什麼來測試這個規則? – anubhava

+0

第二個。 – SporeDev

+0

當我輸入:'http:// localhost/Restaurant-Test-Calnic%20-Alba-5206337cd1cef.php'它確實重定向到'http://localhost/design/oferta.php?tip = Restaurant&nume = Test&localitate = Calnic %20&judet = Alba&id = 5206337cd1cef ** **內部**。如果你想要在瀏覽器中改變URL,那麼將'R'標誌添加爲'[L,R]' – anubhava

回答

1

這種替換代碼:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^oferta/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)\.php$ /oferta.php?tip=$1&nume=$2&localitate=$3&judet=$4&id=$5 [L,R,QSA,NC] 
+0

謝謝Anubhava!這就像魅力一樣。如果您有時間,請查看以下問題:http://stackoverflow.com/questions/18540346/adapting-links-after-mod-rewrite。它們有點相關,但我認爲其他人將它們分開會更好。 – SporeDev

+0

不客氣。我會閱讀這個問題並盡我所能在那裏回答。 – anubhava