Имеет ли значение порядок для этих трех перенаправлений .htaccess? - PullRequest
0 голосов
/ 13 февраля 2020

Моя цель - выполнить sh следующее:

  1. Перенаправить основной домен в подкаталог для очистки загроможденного пространства сервера
  2. Не указывать имя подкаталога как часть URL-адреса, отображаемого в адресной строке браузера
  3. Переключить все запросы http на запросы https

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

Я уже клонировал сайт в подкаталог.

Вот правила, которые у меня есть:

# Aim main domain into subdirectory
RewriteEngine on
RewriteCond %{HTTP_HOST} clientdomain\.com [NC]
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ /subdirectory/$1 [L]

# Make all addresses https
RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://clientdomain.com/$1 [R,L]

# Remove www from all addresses
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

1 Ответ

1 голос
/ 13 февраля 2020

Redirect www and https перед подкаталогом:

RewriteEngine On 

# Make all addresses https
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://clientdomain.com/$1 [R=301,L]

# Remove www from all addresses
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# Aim main domain into subdirectory
RewriteCond %{HTTP_HOST} clientdomain\.com [NC]
RewriteRule ^$ /subdirectory/ [L]

Не было перенаправления на файлы в подкаталоге (только root с проверкой RewriteCond %{REQUEST_URI}), поэтому я удалил настройки.

...