.htaccess исключение для url если файлы физически находятся на сервере


Anamnado
353

я может не так тему написал но суть такая..

в файле .htaccess есть вот такие строки.

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php

все замечательно все хорошо за малым

нужно к этому правилу добавить исключение:

если в урл //site.ru/file/*** ( *** там могут быть вложенные папки в них файлы и файлы указанные в урл физически есть!!) все это редиректить на site.ru/ndex.php ( а он отправит на 404)

// что то простые правила в такой ситуации [ Redirect 301 /file/ _//site.ru/index.php ] не помогают

2) или наоборот

сделать вот эти инструкции !-f, !-d для определенной папки всё стальное закрыть (вернее редиректим на index.php).

можно и так..

// тоже не могу найти как — пишут много пишут все одно и тоже — текcта у всех много … читать устал но все без толку … = ответа не нашел 🙁


LEOnidUKG

Вот так написано в WP и там всё ок:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ — [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>


Anamnado

а у wp у него весь контент в базе данных

у него нет физически файлов с контентом в файлах ,,, могут быть только дополнительные

вот там и всё гут..

проблемка когда контент в файлах..

закрыть можно всё (не писать эти директивы)

но при этом папка с картинками например (если файл есть физически) должна быть открыта.

но лучше и еще одну папку держать открытой

——-

это вот у меня проблема надеюсь небольшая возникла

руки дошли — я переписал свой движок — полностью избавился от БД (мне так удобней просто)

там и стояла вот эта директива и тоже проблем не было.

И вот остался последний штрих вот это наладить….

а то щас если в урл указать путь к файлу с контентом он открывается без шаблона…..

———- Добавлено 17.03.2020 в 01:43 ———-

ну или

я проблему расписал

давайте я все содержимое выложу

может подскажете как лучше сделать

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{HTTPS} off [OR]

RewriteCond %{HTTP_HOST} ^www\.

RewriteCond %{REQUEST_URI} !^/robots\.txt$

RewriteCond %{REQUEST_URI} !^/sitemap\.xml$

RewriteRule (.*) https://moysite.ru/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php

RewriteCond %{REQUEST_METHOD} ^TRACE

RewriteRule .* — [F]

</IfModule>

DefaultLanguage ru

AddDefaultCharset utf-8

php_value default_charset «utf-8»

все кроме проблемы указанной выше работает замечательно ( проверено временем.)..

//движок проходит тесты на сателите можно тестить и в хвост и в гриву… (если чо)

показать могу…он не секретный. но не вижу смысла…

———- Добавлено 17.03.2020 в 01:50 ———-

// и вот ту плаваю еще .. директиву с www я использовал для старых доменов… в принципе еще давно и щас все полностью переехало…. даже не знаю нужна ли она еще ….. но это не важно — важнее вот этот вопрос….(он меня держит на паузе контент заливать) тормозит рабочий процесс так сказать..))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *