#.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>