有網站已經在其他幾個導遊,但瞭解它在更好的方式,因爲你是初學者@AMY,我已經爲你寫這個。希望這會對你有用。
大多數動態網站在其URL中包含變量,告訴網站向用戶顯示什麼信息。通常情況下,這給網址像下面,告訴網站上的相關腳本加載產品7號
http://www.domain.com/upload_pic.php?pic_id=7
的問題,這種URL的結構是URL是不是在所有令人難忘。通過電話很難讀出(你會驚訝有多少人通過這種方式傳遞URL)。搜索引擎和用戶都沒有獲得有關該URL中頁面內容的有用信息。你不能從那個URL中知道那個頁面允許你購買挪威藍鸚鵡(可愛的羽毛)。這是一個相當標準的網址 - 默認情況下,您會從大多數CMS中獲得的排序。與此URL比較:
http://www.domain.com/sabc/7/
顯然是一個更乾淨和更短的URL。記住要容易得多,讀起來也容易得多。這就是說,它並不完全告訴任何人它指的是什麼。但我們可以做更多:
http://www.domain.com/sabc/user-navnish/
現在我們正在某個地方。你可以從URL中知道,即使它脫離了上下文,你可能在該頁面上找到了什麼。搜索引擎可以將該URL拆分爲單詞(URL中的連字符被搜索引擎視爲空格,而下劃線不是),並且他們可以使用該信息更好地確定頁面的內容。這是一個容易記住的URL並傳遞給另一個人。
不幸的是,如果沒有我們的工作,服務器無法輕易理解最後一個URL。當對該URL進行請求時,服務器需要確定如何處理該URL,以便知道要發回給用戶的內容。 URL重寫是用於將最後一個URL「翻譯」爲服務器可以理解的內容的技術。
爲了實現這個目標,我們需要首先創建一個名爲「.htaccess」的文本文檔來包含我們的規則。它必須完全被命名(不是「.htaccess.txt」或「rules.htaccess」)。這將被放置在服務器的根目錄中(與我們的示例中的「upload_pic.php」相同的文件夾)。那裏可能已經存在一個.htaccess文件,在這種情況下,我們應該編輯它而不是覆蓋它。
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^sabc/?$ upload_pic.php [NC,L] # Handle requests for "sabc"
一對夫婦快的項目要注意 - 一切按照.htaccess文件的哈希符號被忽視的一個評論,我建議你使用註釋寬鬆;和「RewriteEngine」行應該只能用於每個.htaccess文件一次(請注意,我沒有在這個代碼示例中包含此行)。
「RewriteRule」這一行是魔術發生的地方。線可以被分解爲5個部分:
重寫規則 - 告知Apache,這樣是指單一 重寫規則。
^/sabc /?$ - 「模式」。服務器將檢查每個請求的網址,以查看該模式是否匹配。如果是,則 Apache將交換請求的URL,以替換後面的「替代」 部分。
upload_pic.php - 「替代」。如果上面的模式 與請求匹配,則Apache使用此URL而不是所請求的網址 。
[NC,L] - 「標誌」,告訴Apache如何應用規則。在這個 的情況下,我們使用兩個標誌。 「NC」告訴Apache,該規則應該是 不區分大小寫,並且「L」告訴Apache如果使用這一規則,則不再處理規則 。
#
爲「SABC」處理請求 - 註釋解釋規則做什麼(可選,但推薦)
上面的規則是重寫一個URL一個簡單的方法,是依據對幾乎所有URL重寫規則。
RewriteEngine On
RewriteRule ^sabc/(.+)$ upload_pic.php?action=$1
希望這將有助於您瞭解URL重寫@AMY。
可以**(。+)**符號將採取特殊字符? – Amy
是的,它會匹配任何字符 – arco444
嘿最後一個問題arco444 ..什麼是L,QSA或N的含義...我很新的.htaccess – Amy