Поддомен 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]
Другие вопросы по тегам