перенаправление htaccess в поддомене вызывает проблему с адресом - PullRequest
0 голосов
/ 07 мая 2020

Prelude

Как показано на рисунке ниже, проблема в следующем коде .htaccess (после рисунка).

screenshot


Код

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ .anon.php [L]

Цель

Я пытаюсь здесь иметь только .htaccess файл и файл .anon.php, который можно использовать либо в document root -или внутри подпапки, где находится подобласть; однако все запросы должны быть направлены в файл .anon.php.

Проблема

Приведенные выше правила перенаправления работают очень хорошо, но по какой-то причине , если папка существует - затем добавляется текущий подкаталог (папка поддомена) к запросу.

Приведенный выше код не вызывает перенаправление-l oop, как показано; l oop исходит из некоторого кода PHP, который я написал, чтобы попытаться смягчить эту проблему, потому что: когда вы вручную изменяете адрес в адресной строке (после того, как он перенаправляется неправильно в первый раз) - тогда все последующие запросы / обновления работают нормально - 100%

Мне пришлось очистить все данные просмотра / кеш, чтобы воспроизвести эту проблему. Redirect-l oop, как описано, не происходит в браузерах на основе хрома, таких как Brave Chrome Opera .. странно, но верно.

Решение

Единственная проблема заключается в том, что он добавляет существующую папку поддомена к адресу в перенаправлении - только если запрошенная папка существует. Решением было бы проинструктировать правила ... «не делать этого» - но я не знаю, как, я уже 2 дня занимаюсь этим и знаю, что решение должно быть довольно простым.

I Я нашел много примеров «sub-domain-as- root», но ни один из них не решает именно эту проблему. Любые ответы и комментарии будут оценены и вознаграждены, спасибо.

1 Ответ

1 голос
/ 04 августа 2020

это может вам помочь

 RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?PUTYOURDOMAINNAMEHERE.com$ 
RewriteCond %{REQUEST_URI} !^/PUTYOURFOLDERHERE/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /PUTYOURFOLDERHERE/$1  
RewriteCond %{HTTP_HOST} ^(www.)?PUTYOURDOMAINNAMEHERE.com$ 
RewriteRule ^(/)?$ PUTYOURFOLDERHERE/ [L]
Options +SymLinksIfOwnerMatch
...