0
我想創建我的第一個.htaccess使URL重寫和其他的東西,但我浪費了兩天的搜索信息,並試圖使它沒有成功。htaccess文件重定向非www和https請求,並重寫URL
我想什麼來實現如下:
1)所有非www網址重定向到WWW網址(似乎對SEO最佳實踐)
domain.com --> www.domain.com
? 2)重定向所有HTTPS請求到http的:
https://www.domain.com --> http://www.domain.com
https://domain.com --> http://www.domain.com
3)重寫我的網址是搜索引擎友好,並最終在地址的末端剝去任何尾隨斜線:
www.domain.com/abc --> www.domain.com/index.php?page=abc
www.domain.com/abc/ --> www.domain.com/abc
我有什麼事這麼遠,是其採取單獨3段工作:
# 1) This should be correct, I hope!
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# 2) This seems to work 100% right
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R,L]
#3) Major issues here
RewriteEngine On
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
此工程部分:它做我想要什麼,但我得到當我把尾隨斜線的搜索引擎友好的URL畢竟相對路徑細分:
www.domain.com/abc OK
www.domain.com/abc/ page gets displayed but all relative URL for css and images are broken
我甚至不知道如何將單個htaccess文件中的不同規則結合起來,以使它們正確交互。
對不起,長期的解釋,這個問題對我來說變得相當令人沮喪。
謝謝您的答覆。這裏有一個缺少的斜線'RewriteRule ^([^/\。] +)/ $ http://%{HTTP_HOST}/$ 1 [R = 301,L]'但這是一個簡單的修復。不幸的是,https重定向不會發生,如果我把'https:// domain.com/abc /' – Eggplant 2013-02-09 11:00:49
的東西抱歉,我的壞。這是我虛擬服務器的一個愚蠢的錯誤配置。它工作100%完美,非常感謝,現在這些htaccess文件對我來說似乎更容易理解!再次感謝。 – Eggplant 2013-02-09 11:52:20