WordPress的重寫,不能解決的文件或目錄index.php
一切做它,它看起來像這樣:
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
而且index.php文件讀取請求的URI,並計算出該怎麼做它。與此同時,wordpress知道這些網址正在被重寫,因此它會呈現帶有簡潔的SEO友好網址的網頁,例如http://example.com/pagename/
。
對於你的榜樣,mod_rewrite的本身是不會要能夠知道,除非你硬編碼了一堆個人的RewriteRules的ID = 3相當於頁面名。你可以做什麼使它的index.php接受頁面名稱所以你的規則將是這個樣子:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?page=$1 [L]
現在就看你的內容產生清潔SEO友好的URL。在內容管理系統中,頁面本身通常以某種類型的ID存儲在數據庫中。在2011年10月10日創建的數據庫中將ID標識爲「5」的頁面稱爲「Test Page」。當CMS需要生成鏈接時,它會查找數據庫並將鏈接構建爲/2011/10/Test_Page
。
因此,當你轉到首頁時,index.php會生成指向其所有頁面的鏈接,並且對於「測試頁」,該鏈接將顯示/2011/10/Test_Page
,當有人點擊該鏈接時,apache會使用一條規則RewriteRule ^([0-9]+)/([0-9]+)/(.+)$ /index.php?year=$1&month=$2&title=$3 [L]
將URL重寫爲/index.php?year=2011&month=10&title=Test_Page
。 index.php腳本在數據庫中查找正確的頁面並將其返回給瀏覽器。這對每個CMS都會有所不同。本質上,.htaccess不會知道存儲在數據庫中的任何內容,但它可以重寫鏈接,以便將所需信息(如「id」或「page」)傳遞給腳本。這是由腳本來決定什麼頁面返回和生成清潔SEO友好的鏈接在該頁面上。
好的,我們假設我選擇了WP路由並將所有內容重寫爲'index.php'。我仍然不明白如何將URL重寫爲更清晰的內容。我查看了Wordpress中的'rewrite.php'文件,看看它們是如何做到的,但當它隱藏在複雜的CMS中的2000行文件中時,理解困難的概念並不容易。 –
看我的編輯。這完全取決於你如何產生乾淨的SEO友好鏈接。這不是.htaccess或apache的一部分。 –