htaccess: URL с любым URI, не перенаправленным на https://www - PullRequest
0 голосов
/ 21 сентября 2018

В настоящее время это мой файл .htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    # Redirect to HTTPS
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule !/status https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

    # Send would-be 404 requests to Craft
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
    RewriteRule (.+) index.php?p=$1 [QSA,L]

    # Custom Redirects
    Redirect /investors/reporting/estma /investors/investor-reporting/financial-information#estma
    RewriteCond %{HTTP_HOST} ^portal\.arcresources\.com [NC]
    RewriteRule ^(.*) https://www\.arcresources\.com/portals [L,R=301]
</IfModule>

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

Перенаправление работает нормально, если вы просто набираете домен, поэтому arcresources.com правильно перенаправляет на https://www.arcresources.com. Это также работает, если вывключите www и любой URI, поэтому www.arcresources.com/investors также правильно перенаправляет.

Проблема заключается в вводе только домена + URI, поэтому arcresources.com/investors перенаправляет только на https://arcresources.com/investors (без www.), что приводит к отказу в соединении.

Я уверен, что упускаю что-то простое, но все мои попытки до сих пор либо добавляли двойные "www", либо приводили к слишком большому количеству перенаправлений.

Заранее спасибо:)

1 Ответ

0 голосов
/ 21 сентября 2018

Попробуй так:

RewriteEngine On
RewriteBase /

# Redirect HTTP with www to HTTPS with www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Redirect HTTP without www to HTTPS with www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Redirect HTTPS without www to HTTPS with www
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
#RewriteCond %{REQUEST_URI} !index.php  [NC]
RewriteRule (.+) index.php?p=$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...