RewriteRule — предоставить доступ к папке

#.htaccess #mod-rewrite

#.htaccess #мод-перезаписать

Вопрос:

Я использую RewriteRule для сокращения ссылок с ?s=xxx на /xxx — но у меня есть некоторые проблемы, связанные с тем, что я не могу получить доступ к файлам в некоторых папках. Чтобы помочь с этим, я сделал исключение в правиле как:

 RewriteRule ^(inv.*) $1 [L]
  

Это потому, что у меня есть файлы .pdf в папке «inv».

Но проблема в том, что у меня также есть несколько сайтов, которые называются / invitation . Проблема в том, что эта ссылка выдает ошибку 404.

Если я переделаю строку выше, /invitation работает, но затем я получаю ошибку 404 в /inv/xx.pdf .

Как я могу изменить RewriteRule, который делает обе работы.

Спасибо.

Это весь мой файл .htaccess:

 DirectoryIndex i.php index.php index.html
RewriteEngine On
RewriteRule ^robots.txt - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*.php)$ $1 [L]
RewriteRule ^(inv.*) $1 [L]
RewriteRule ^([^/] )/?$ /?s=$1 [NC,L]
RewriteRule ^(nyhet)/([^/] )/?$ /?s=$1amp;n=$2 [NC,L]
RewriteRule ^([^/] )/([^/] )/?$ /?s=$1_$2 [NC,L]
ErrorDocument 404 http://www.domain.com/404
ErrorDocument 403 http://www.domain.com/404
  

Ответ №1:

отключить отчетное содержимое с помощью

 Options All -Indexes 
  

затем исправьте правила файлов

 <Files ~ "([.][^][*])^.*.">
order allow,deny
deny from all
satisfy all
</Files>