UnluckySerivelha
@UnluckySerivelha

Как настроить .htaccess в yii2, чтобы можно было из браузера открыть папку, лежащую в корне?

Есть такой кусок .htaccess. Пробовал добавить "RewriteCond %{REQUEST_URI} !^/new/" , т.е. исключить /new/ из правила для редиректа, но не работает.
Как понимаю, он перенаправляет все на index.php. В корне сайта (рядом с .htaccess) лежит папка new, в которой есть index.php. Нужно, чтобы при вводе sitename.ru/new/ открывалась папка new.

<IfModule mod_rewrite.c>
    # remove slash
    RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s]
    RewriteRule /$ /%1 [R,L]

    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

    #Redirect HTTP to HTTPS
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # если /admin, то в backend
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
    RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]
    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|js|css|js)/
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^.*$ backend/web/index.php [L]

    RewriteCond %{REQUEST_URI} ^/(assets|css|js|images)
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
    RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
    RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
    RewriteRule ^(.*)$ frontend/web/$1 [L]
    
    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^.*$ frontend/web/index.php
</IfModule>
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dodo512
Пробовал добавить "RewriteCond %{REQUEST_URI} !^/new/"

А куда добавляли? Там два правила с которыми может совпасть запрос /new/.
# remove slash
    RewriteCond %{THE_REQUEST} \s/+(.+?)/+[?\s]
    RewriteRule /$ /%1 [R,L]

И ещё
RewriteRule ^(.*)$ frontend/web/$1 [L]
Вот к этим правилам и нужно было добавлять исключение.

Или добавить выше остальных правил такое:
RewriteRule ^new/ - [L]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы