URLを書き換えるなどの目的で最初の.htaccessを作成しようとしていますが、情報を検索して機能させるために2日間を無駄にしてしまいました。
私が達成したいのは次のとおりです。
1)すべての非wwwURLをwwwURLにリダイレクトします(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)URLをSEOに適したものに書き直し、最終的にアドレスの末尾にあるスラッシュをすべて削除します。
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]
これは部分的に機能します:それは私が望むことをします、しかし私がSEOフレンドリーなURLの後に末尾のスラッシュを置くとき、私はすべての相対パスを壊します:
www.domain.com/abc OK
www.domain.com/abc/ page gets displayed but all relative URL for css and images are broken
さまざまなルールを1つのhtaccessファイルに組み合わせて、正しく相互作用させる方法すらわかりません。
長い説明で申し訳ありませんが、この問題は私にとって非常に苛立たしいものになっています。