.htaccess HTTPS перенаправляет работает, но HTTPS собирается в /index.php - PullRequest
0 голосов
/ 12 мая 2019

HTTP запросы на мой сайт всегда перенаправляются на index.php, где HTTPS запросы вообще не запрашивают index.php и работают как положено.

Например:

https://example.com/contact не перенаправляет и работает как положено.

http://example.com/contact перенаправляет на https://example.com/index.php и не загружает требуемую страницу.

Мой текущий .htaccess выглядит так:

# Always set these headers.
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

RewriteEngine On
# RewriteCond %{SERVER_PORT} 80 
# RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]

# Force HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1 Ответ

0 голосов
/ 13 мая 2019

Это вызвано этой частью:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

http://example.com/contact становится http://example.com/index.php из-за правила перезаписи чуть выше, а затем ваше правило перезаписи, которое заставляет https переписать его в https://example.com/index.php

Я не знаю, что вы намереваетесь делать с частью, которую я цитировал, но попробуйте прокомментировать ее и протестировать снова.

...