Файл
My .htaccess
разбивает субдомены, если они размещены в каталоге public_html
вместе с основным доменом. Это со старым хостом, который по умолчанию не поменял местами пользователя root (выше public_html
).
Кажется, что более обновленные хосты, такие как Hostgator, использующий более новую cPanel, размещают субдомены на том же уровне, что и public_html
, а не внутри него. Мне это нравится, так как htaccess основного сайта не влияет на него!
К сожалению, у клиента есть более старый хост, и он заставляет поддомен внутри public_html
.
Вот мой htaccess: Суть
Options -Indexes
RewriteEngine On
# This goes first!
# Force www prefix
RewriteCond %{HTTP_HOST} !^(www\.)(.*) [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
# This goes second!
RewriteCond %{HTTPS} !=on
# Exclude SSL validation paths
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]
{32}\.txt(?:\ Comodo\ DCV)?$
# Force HTTPS
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
Я думаю, что речь идет о строках 7 и 8.
Что он делает:
Перенаправляет на URL-адрес, подобный этому, и выдает ошибку 500: https://www.images.example.com/images.example.com/
Я не хочу никаких жестко закодированных параметров (доменное имя или имя поддомена).