0

次の mod の書き換えを使用して、正規の URL だけでなく、サイトが HTTPS を使用して表示されるようにしています。

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
// It think the problem must be here --^

RewriteCond %{HTTP_HOST} ^rto12\.ca$ [NC]
RewriteRule ^(.*)$ https://www.rto12.ca/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php?
RewriteRule ^index\.php?$ https://www.rto12.ca/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html?
RewriteRule ^index\.html?$ https://www.rto12.ca/ [R=301,L]

ここに行こうとすると問題が発生します: rto12.ca... ブラウザは次の場所に移動します: ` https://www.rto12.ca/https://rto12.ca/ '

これは、これを引き起こしている最初の条件/ルールです。任意の提案をいただければ幸いです。

4

1 に答える 1

4

このルール:

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

...リクエストを に書き直し、https://rto12.ca/REQUEST_URIそれを次のルールに渡します (リクエストの最後に追加する次のルールへの入力は になりますhttps://rto12.ca/REQUEST_URI)。ただし、正しく機能させるには、すぐにリダイレクトする必要があります。

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

すべてのルールをせいぜい 1 つのリダイレクトにまとめることができる可能性が高いので、少し試してみましょう。何が思いつくか見てから、答えを更新します。ただし、フラグを追加すると、どちらの方法でも問題が解決するはずです。

編集:これはすべてを一度に行うべきだと思います:

RewriteEngine On

RewriteCond %{HTTPS}        =off   [OR]
RewriteCond %{HTTP_HOST}   !^www\. [OR]
RewriteCond %{THE_REQUEST}  ^[A-Z]{3,9}\ /index\.(html|php)
RewriteCond %{HTTP_HOST}    ^(www\.)?(.+)$
RewriteRule ^(index\.(html|php))|(.*)$ https://www.%2/$3 [R=301,L]
于 2010-09-07T15:14:43.943 に答える