2011-09-30 98 views
0

這裏是網址,我有工作:mod_rewrite的...重命名的網址,並讓他們正常工作

example.com/php/statePage.php?region_slug=new-york-colleges

這是我想獲得的URL顯示爲:

example.com/new-york-colleges.html

到目前爲止,我已經嘗試了幾件事情,我想我正在接近,但這是我的第一個PHP/MySQL站點,並且第一次使用.htaccess。

這裏是到目前爲止我的。htaccess:

RewriteEngine敘述上

重寫規則1^/([^ /。] +)的HTML $的PHP/statePage.php region_slug = $ [L。? ]

任何幫助將不勝感激。如果你能解釋我錯過了什麼,或者我做錯了什麼,那將會幫助我更多...我正在努力學習如何做到這一點,並簡單地給我剪切和粘貼方法只會幫助我今天。

謝謝,這對我來說意義重大!

回答

1
RewriteEngine on 
RewriteRule ^([^/\.]+)\.html/?$ php/statePage.php?region_slug=$1 [L] 

有兩點需要指出:

.在重寫語法使用,它代表任何字符。所以你現在的規則說取代任何不是任何字符的東西,接着是'.html'。要解決這個問題,請像\.這樣逃避你的點。在這種重寫語法中有幾個特殊字符。這會讓你注意到它們。其次,我不確定這是不是重寫了,但是我從來沒有在重寫規則開始前親自使用過正斜槓,這可能影響規則本身,也可能不影響規則本身。鼓勵任何澄清此事的用戶回覆。

編輯:下列字符標記爲重寫語法特殊字符(和所有的正則表達式,對於這個問題),因此,需要在爲了用反斜槓\逃到用文字代替 - [\^$.|?*+()

此外,您可能會發現this reference有助於進一步瞭解正則表達式的正確語法。

+1

謝謝你......我的網站正在工作。我不完全確定重寫規範是什麼,但是開始時的原因是因爲我在嘗試尋求幫助(試錯法)之前嘗試了很多事情來查看它是否有效。感謝您的澄清。我開始熟悉正則表達式,我使用了很多:http://regexpal.com/ – NotJay