2012-02-08 75 views
0

我已經在其他幾個地方使用這個特殊的mod_rewrite規則,它可以完美地按預期工作。然而,這不是在這裏工作,對我來說,我不明白爲什麼。mod_rewrite規則不工作,因爲它應該

的設置如下:

www.site.com/villas-in-florida/ 

.htaccess文件是在上面的目錄中,並在它下面的:

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 

RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2&location=$3&state=$4 [L] 

這應該轉換成以下幾點:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida 

分析:

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida 

但事實並非如此,我現在正在撕裂我的實際頭髮。任何和所有的提示將不勝感激,謝謝!

+0

問題是使用的分隔符連字符'-'的位置即'calabay-parc' – anubhava 2012-02-08 10:32:09

+0

@anubhava我刪除了 - 從「名」,並試圖沒有它,所以calabayparc成爲calabayparc,然後也嘗試calabay_parc - 沒有骰子! – Trell 2012-02-08 10:43:32

+0

嗯仍然顯示'&name = calabay-parc'在我的目標網址。 – anubhava 2012-02-08 10:57:13

回答

1

它不會轉換:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida 

分爲:

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida 

它的相反。即

它將改寫(不轉換):

http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida 

分爲:

http://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida 

您的h refshttp://www.site.com/villas-in-florida/show-villa.php?id=1&name=calabay-parc&location=davenport&state=florida使用像http://www.site.com/villas-in-florida/1-calabay-parc-davenport-florida網址。重寫的URL不會反映在瀏覽器中。

此外在重寫過程中還存在一個小錯誤。

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 

RewriteRule ^([^/]+)-([^/]+)-([^/]+)-([^/]+)-([^/]+)$ show-villa.php?id=$1&name=$2-$3&location=$4&state=$5 [L] 
+0

接受,但你錯過了最後一個)我之前打破了我的網站+ $:P我雖然抓住了,謝謝你的答案。正如你所說的那樣,它將'calabay'和'parc'作爲兩個獨立的輸入。你是個明星! – Trell 2012-02-08 10:57:20

+0

@Trell歡迎。 – ThinkingMonkey 2012-02-08 10:59:52

相關問題