私はApache Webサーバーを借りています。フォルダのアーキテクチャは、このようなものです:index.phpとフォルダへのリダイレクトとの衝突
- ルート
- SRC
- テンプレート
- 以下
- WWW
- CSS
- JS
- JPEG
ウェブサーバーにのみwww
ディレクトリを提供しています。また、.htaccessを使用してHTTPSにリダイレクトし、www.
を削除して、index.php
にすべてのリクエストをリダイレクトします(ただし、ファイルはwww
フォルダに存在します)。
RewriteEngine On
# Redirect to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Remove WWW
RewriteCond %{HTTP_HOST} ^www\.domaine\.com$ [NC]
RewriteRule (.*) https://domaine.com%{REQUEST_URI} [R=301,QSA,NC,L]
# Redirect all route to index.php
# Except the files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php?$1/ [NC,L,QSA]
問題は、フォルダ名を要求するときです。フォルダはindex.php
に2回リダイレクトされます。
例:http://domaine.com/css
をリクエストすると、リクエストはhttps://domaine.com/index.php?css/?css/
にリダイレクトされます。
どのようにダブルリダイレクトを解決するには?あなたの最後のルールからディレクトリを除外したり、この動作
を避けるために、ディレクトリへのリダイレクトルールを使用して、末尾にスラッシュを追加するか必要
ブラウザのキャッシュを消去してみてください。 – starkeen