В моем файле htaccess есть следующее:
- Принудительно использует HTTPS и www
- Перезаписать, чтобы скрыть определенные каталоги в пути URL
- Удалить расширение PHP из файлов
- Индивидуальные перенаправления
- 404 Страница
код:
# ----------------------------------------------------------------------
# | Rewrites |
# ----------------------------------------------------------------------
RewriteEngine On
# Force HTTPS and www
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
# Rewrite to hide specific directories in url path
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/_core/$1.php -f
RewriteRule ^(.+?)/?$ _core/$1.php [L]
RewriteCond %{DOCUMENT_ROOT}/_landing/$1.php -f
RewriteRule ^(.+?)/?$ _landing/$1.php [L]
RewriteCond %{DOCUMENT_ROOT}/_products/$1.php -f
RewriteRule ^(.+?)/?$ _products/$1.php [L]
RewriteCond %{DOCUMENT_ROOT}/_static/$1.php -f
RewriteRule ^(.+?)/?$ _static/$1.php [L]
# Remove PHP extension from files
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
RewriteCond %{REQUEST_FILENAME}.php -f [NC]
RewriteRule ^ %{REQUEST_URI}.php [L]
# Individual Redirects
Redirect 301 /page-x/ https://www.mysite.co.uk/page-x/
# 404 Page
ErrorDocument 404 /error-page
Каждый работает нормально.Однако теперь мне не нужно применять # 1 (принудительное использование HTTPS и www) при работе на локальном хосте.
Я пробовал несколько способов, включая добавление
RewriteCond %{HTTP_HOST} !=localhost
, поэтому блок становится:
# Force HTTPS and www
RewriteCond %{HTTP_HOST} !=localhost
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !=localhost
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
в условия, но это затем выбивает остальные правила, т.е. переписать, чтобы скрыть определенные каталоги в пути URL и так далее.Как я могу изменить правила HTTPS и www, чтобы они не применялись на локальном хосте, но сохраняли остальные правила, которые следуют?