@MegaPuxapb

Почему .htaccess не даёт открыть доступ к файлу?

Есть хост с сайтом.
Залил туда тестовый сайт. Получилось вроде этого site/test/index.html
Не грузится тестовый, редирект на 404.
Так понимаю в .htaccess не пускает.
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE image/svg+xml svg
  AddOutputFilterByType DEFLATE image/svg+xml svgz
</IfModule>
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 month"
  ExpiresByType image/jpg "access plus 1 year"
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType application/pdf "access plus 1 year"
  ExpiresByType text/x-javascript "access plus 1 year"
  ExpiresByType text/css "access plus 1 year"
  ExpiresByType image/x-icon "access plus 1 year"
  ExpiresByType text/javascript "access plus 1 year"
  ExpiresByType application/javascript "access plus 1 year"
  ExpiresByType application/x-javascript "access plus 1 year"
</IfModule>

<IfModule mod_rewrite.c>

    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    ##
    ## Directory Listing attempts
    ##
    DirectorySlash Off
    RewriteOptions AllowNoSlash

    ##
    ## Redirect trailing slashes
    ##
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    ##
    ## Remove multiple slashes after domain
    ##
    RewriteCond %{HTTP_HOST} !=""
    RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR]
    RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$
    RewriteRule .* http://%{HTTP_HOST}/%1 [R=301,L]

    ##
    ## Remove multiple slashes anywhere in URL
    ##
    RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
    RewriteRule . %1/%2 [R=301,L]

    ##
    ## Redirect index.php
    ##
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

    ##
    ## You may need to uncomment the following line for some hosting environments,
    ## if you have installed to a subdirectory, enter the name here also.
    ##
    # RewriteBase /

    # If there are caps, set HASCAPS to true and skip next rule
    ## RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1]

    # Skip this entire section if no uppercase letters in requested URL
    ## RewriteRule ![A-Z] - [S=28]

    # Replace single occurance of CAP with cap, then process next Rule.
    ## RewriteRule ^([^A]*)A(.*)$ $1a$2
    ## RewriteRule ^([^B]*)B(.*)$ $1b$2
    ## RewriteRule ^([^C]*)C(.*)$ $1c$2
    ## RewriteRule ^([^D]*)D(.*)$ $1d$2
    ## RewriteRule ^([^E]*)E(.*)$ $1e$2
    ## RewriteRule ^([^F]*)F(.*)$ $1f$2
    ## RewriteRule ^([^G]*)G(.*)$ $1g$2
    ## RewriteRule ^([^H]*)H(.*)$ $1h$2
    ## RewriteRule ^([^I]*)I(.*)$ $1i$2
    ## RewriteRule ^([^J]*)J(.*)$ $1j$2
    ## RewriteRule ^([^K]*)K(.*)$ $1k$2
    ## RewriteRule ^([^L]*)L(.*)$ $1l$2
    ## RewriteRule ^([^M]*)M(.*)$ $1m$2
    ## RewriteRule ^([^N]*)N(.*)$ $1n$2
    ## RewriteRule ^([^O]*)O(.*)$ $1o$2
    ## RewriteRule ^([^P]*)P(.*)$ $1p$2
    ## RewriteRule ^([^Q]*)Q(.*)$ $1q$2
    ## RewriteRule ^([^R]*)R(.*)$ $1r$2
    ## RewriteRule ^([^S]*)S(.*)$ $1s$2
    ## RewriteRule ^([^T]*)T(.*)$ $1t$2
    ## RewriteRule ^([^U]*)U(.*)$ $1u$2
    ## RewriteRule ^([^V]*)V(.*)$ $1v$2
    ## RewriteRule ^([^W]*)W(.*)$ $1w$2
    ## RewriteRule ^([^X]*)X(.*)$ $1x$2
    ## RewriteRule ^([^Y]*)Y(.*)$ $1y$2
    ## RewriteRule ^([^Z]*)Z(.*)$ $1z$2

    # If there are any uppercase letters, restart at very first RewriteRule in file.
    ## RewriteRule [A-Z] - [N]

    ## RewriteCond %{ENV:HASCAPS} TRUE
    ## RewriteRule ^/?(.*) /$1 [R=301,L]

    ##
    ## Black listed folders
    ##
    RewriteRule ^bootstrap/.* index.php [L,NC]
    RewriteRule ^config/.* index.php [L,NC]
    RewriteRule ^vendor/.* index.php [L,NC]
    RewriteRule ^storage/cms/.* index.php [L,NC]
    RewriteRule ^storage/logs/.* index.php [L,NC]
    RewriteRule ^storage/framework/.* index.php [L,NC]
    RewriteRule ^storage/temp/protected/.* index.php [L,NC]
    RewriteRule ^storage/app/uploads/protected/.* index.php [L,NC]

    ##
    ## White listed folders
    ##
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} !/.well-known/*
    RewriteCond %{REQUEST_FILENAME} !/storage/app/uploads/.*
    RewriteCond %{REQUEST_FILENAME} !/storage/app/media/.*
    RewriteCond %{REQUEST_FILENAME} !/storage/temp/public/.*
    RewriteCond %{REQUEST_FILENAME} !/themes/.*/(assets|resources)/.*
    RewriteCond %{REQUEST_FILENAME} !/plugins/.*/(assets|resources)/.*
    RewriteCond %{REQUEST_FILENAME} !/modules/.*/(assets|resources)/.*
    RewriteRule !^index.php index.php [L,NC]

    ##
    ## Block all PHP files, except index
    ##
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} \.php$
    RewriteRule !^index.php index.php [L,NC]

    ##
    ## Standard routes
    ##
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

</IfModule>


Как открыть путь, ничего не сломав?
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Срабатывает самое последнее правило, и уже в index.php происходит редирект на 404.
https://htaccess.madewithlove.be?share=a2f08417-86...

Можно перед Standard routes добавить такие строки:
RewriteCond %{REQUEST_FILENAME} -f              # файл существует
RewriteRule ^site/test/.* - [L,NC]              # и адрес начинается на "/site/test/"
# - ничего не делать, то есть разрешить обращение к этому файлу
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы