我的網站中有許多頁面,正如人們所期望的那樣。.htaccess重寫問題
例如:
的index.php submit.php view.php的id =等等
我想這些改寫像
指數/ 提交/ 視圖/等等
?這樣做的最好方法是什麼?
我的網站中有許多頁面,正如人們所期望的那樣。.htaccess重寫問題
例如:
的index.php submit.php view.php的id =等等
我想這些改寫像
指數/ 提交/ 視圖/等等
?這樣做的最好方法是什麼?
通過.htaccess處理它的方法重寫可能會產生一些頭痛的問題。這似乎是一個基本的答案,但除非你正規表達,否則你將會迷失方向。
但是,有幾種處理方法。我假設你只有index.php,submit.php和view.php與一個id關聯。
RewriteEngine On RewriteRule ^(index|submit|view)/(\d+)$ /$1.php?id=$2 RewriteRule ^(index|submit|view)/(\d+)$ /$1.php
以下是它的工作方式:您告訴.htaccess打開重寫引擎。第2步,你給該網站的參數,告訴它如何完成。在這種情況下,參數爲:在URL的開頭,在域名後面,檢查索引,提交或查看。如果存在,它會查找該ID。如果兩者都存在,它將返回值爲/(index, submit, or view)?id=$id
。
第二個是萬一身份證不可行。
這是處理它的一種簡單方法。處理這將是一個更復雜的方式...
RewriteEngine On RewriteRule ^([a-z]+)/?(\d+)?$ /$1.php?id=$2
這將加載無論是寫在只有大寫和小寫字母常規字母字符,使用它作爲文件名,然後檢測是否ID是甚至是必要的 - 它會加載沒有。
你應該一定要包括你的$_GET
行一些保障措施,如果名稱是錯誤的或者不返回值得的東西返回錯誤。
你應該玩弄它,在一壺咖啡和一些酒精中研究正則表達式(我相信正則表達式是現代程序員酗酒的頭號原因,但我可能是錯的; -P ...)直到你找到一個適合你係統的方案。
作爲一個側面說明,因爲你需要,你可以有許多的RewriteRules,但他們每次總是從最上面的一個優先處理。我意識到這聽起來像常識,但知道調試時很重要。