#.htaccess
#.htaccess
Вопрос:
Я новичок в этом, но у меня есть следующий .htaccess, который работает правильно:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.com$
RewriteRule (.*) http://www.site.com/$1 [R=301,L]
RewriteRule ^$ /wordpress [L,R=301]
Это перенаправляет любого на site.com или www.site.com чтобы перейти к www.site.come/wordpress
Однако у меня есть 2 каталога, которые мне нужно игнорировать это правило:
www.site.com/dir1
www.site.com/dir2
и их нужно игнорировать (не переписывать, даже если они приходят без www.)
Редактировать: необходимо игнорировать каталог И файлы в каталоге. итак site.com/dir1 И site.com/dir1/index.php следует оставить оба в покое.
Как я могу это сделать?
Спасибо! Крис
Ответ №1:
Вам просто нужно добавить еще пару условий к вашему первому RewriteRule:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.com$
RewriteCond %{REQUEST_URI} !^/dir1(/|$)
RewriteCond %{REQUEST_URI} !^/dir2(/|$)
RewriteRule (.*) http://www.site.com/$1 [R=301,L]
RewriteRule ^$ /wordpress [L,R=301]
(/|$)
В конце условий выполняется проверка либо для a / для другого компонента path, либо для завершения запроса ( $
). Вы могли бы оставить (/|$)
выключенным, если вы не разборчивы и готовы игнорировать любой запрос, начинающийся с /dir1
или /dir2
, например /dir1a
.
Второму RewriteRule не нужны никакие новые условия, поскольку он соответствует только корню домена ( ^$
).
Комментарии:
1. Именно то, что мне было нужно, и я ДЕЙСТВИТЕЛЬНО ценю объяснение!