我想要做的事情: 的格式爲'http://domain.tld/one/two/three',它可以通過查看REQUEST_URI服務器變量來處理PHP腳本(index.php)。
在我的例子中,REQUEST_URI是'/ one/two/three'。 (順便說一句,這是一個好主意嗎?)mod_rewrite:不是?和#在REQUEST_URI
我正在使用Apache的mod_rewrite來實現這一點。
這是我在我的.htaccess使用重寫規則:
RewriteRule ^/?([a-zA-Z/]+)/?$ /index.php [NC,L]
這個作品真的很好迄今;它會將每個由a-z,A-Z或'/'組成的REQUEST_URI轉發到/index.php,在那裏處理它。
唯一的缺點:'?' (問號)和'#'(散列鍵)在REQUEST_URI中似乎仍然被允許,可能還有更多的字符我還沒有找到。
是否有可能通過我的.htaccess限制那些和RewriteRule的充分的補充?
謝謝!
我明白了,讓我們忘掉#然後它不是一個大問題,但是'?'有點困擾我。有沒有辦法不重寫包含'?'的REQUEST_URIs?有人提到(現在刪除了他的答案)來檢查一個空的QUERY_STRING,這聽起來像一個好主意,但沒有工作,也許我做錯了? 我試過了你的建議,但那沒有做任何事情。謝謝。 – tshabala 2010-06-14 10:39:31
@tshabala The?在index.php的結尾刪除查詢字符串。我已經用信息更新了我的答案 – Cez 2010-06-14 11:02:38
@tshabala我已經添加到我的答案中,因爲我發現了你的意思 – Cez 2010-06-14 11:13:39