我有一個重寫規則可以正常工作,其格式爲site.com/dir/page1.php
的任何頁面都被翻譯成格式爲site.com/page1
。我實現了與:如何爲.htaccess重寫規則指定一個目錄?
# 1. turn on the rewriting engine
RewriteEngine On
# 2. remove the www prefix
RewriteCond %{HTTP_HOST} ^www\.site\.com [NC]
RewriteRule ^(.*)$ http://site.com/$1 [L,R=301]
# 3. send all non-secure pages to secure pages
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
# 4. if 404 not found error, go to homepage
ErrorDocument 404 /index.php
# 5. if url received with trailing slash (e.g. http://domain/test/) then go to correct page (e.g. http://domain/pages/test.php)
RewriteRule ^([^.]+)/$ includes/$1.php
# 6. if url received WITHOUT trailing slash (e.g. http://domain/test) then go to correct page (e.g. http://domain/pages/test.php)
RewriteRule ^([^.]+)$ includes/$1.php
我現在已經建立了一個博客在site.com/blog/
,當我試圖訪問它時顯示的主頁(即404錯誤)的博客。
我認爲錯誤是在部分#5和#6,並以某種方式我需要指定重寫規則是專門爲'includes'目錄?但我可能是錯的,任何幫助表示讚賞,謝謝!
更新:
我試圖解決在這裏忽略 '博客' 目錄:
How to configure .htaccess file for rewrite rules to get rid of extensions, trailing slashes, www?
#skip wordpress site which starts with blog
RewriteCond %{REQUEST_URI} !^/blog [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
但是這並沒有爲我遺憾的是工作。
請發佈博客網址的樣本。是否應該在'blog /'中進行重寫? – 2013-02-18 13:29:04
感謝您的回覆,它是一個WordPress博客,我只是試圖訪問博客「正常/開箱即用」,即site.com/blog,所以在我的理解中,我只需要說一些說全部離開/單獨的博客鏈接(這也包括/ blog/wp-admin等)。謝謝。 – user1063287 2013-02-18 13:31:52