Поддомен htaccess Подстановочный знак ssl не открывается
Итак, я столкнулся с проблемой с моим htaccess и как заставить его работать.
Я только что приобрел подстановочный знак ssl для своих основных и поддоменов. Я с bluehost, и они предлагают добавить это:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdomain/$1
RewriteCond %{HTTP_HOST} ^subdomain.example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
На данный момент все, что у меня есть, это...
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ https://www.domain.com/$1 [L]
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
и это работает, однако, я не могу получить его так, что когда я открываю файл, он просто открывает файл без перенаправлений... Так что, если я открою sub.domain.com/file/fil1.js, он откроет index.php чего я не хочу...
но если я делаю / просматривать или что-то подобное, это работает...
2 ответа
Хорошо, после того, как много поигралось и поигралось с ним, был запрос файла, который не включал в себя папку поддомен, из-за чего он не мог найти местоположение файла. Так что мне удалось сделать ручную проверку файла, и это то, что я получил. Кажется, это делает именно то, что я хочу. Я не уверен, что есть более эффективный способ, но это то, что он получил.
#-------------------SUB.DOMAIN.COM---------------------
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{DOCUMENT_ROOT}/sub_folder%{REQUEST_URI} -f
RewriteRule . %{DOCUMENT_ROOT}/sub_folder%{REQUEST_URI} [L]
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]
#--------------------------------------------------------------
вместо
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]
Вам нужно изменить второе правило, чтобы оно применялось только тогда, когда запрос ^(/)?$
, тогда вам нужно продублировать то, что Bluehost говорит вам делать. По сути, заменить:
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]
Что они говорят вам использовать:
RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdomain/$1 [L]
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^/?$ /sub_folder/index.php [L]