rewritecond исключить URL-адрес в .htaccess

У меня есть эти правила перезаписи:

# Allow access to assets folder from plugins folders
RewriteRule ^app/plugins/(.+)/assets - [L]

# forbid access to files and folders under app
RewriteRule ^app/.*$ - [L,F]

# rewrite to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]

Теперь я хотел бы исключить из этих правил все, что находится под http://www.mywebsite.com/wordpress/</а> ... Поэтому я добавил новое условие перезаписи:

...
# rewrite to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^\/wordpress\/ [NC]
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]

But it dosen't work. When I try to access something like this :

http://www.mywebsite.com/wordpress/contact-us/

он перенаправляет меня на index.php ...

Любая помощь могла бы быть полезна.

1
добавлено отредактировано
Просмотры: 1
de

2 ответы

Хорошо, я наконец нашел, что не так со всем этим: На самом деле я не заметил, что файл .htaccess присутствует в моем каталоге/wordpress. Поэтому в .htaccess моего корневого каталога я добавил это правило поверх всех остальных:

RewriteRule ^wordpress - [L]

Затем в .htaccess каталога wordpress у меня есть следующие правила:

RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]

Я не знаю, все ли оптимизировано, но оно работает!

1
добавлено

Попробуй это:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/wordpress/ [NC]
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]
0
добавлено
Спасибо за ваш ответ, но это не решает мою проблему. Тем не менее перенаправление, в то время как это не должно!
добавлено автор user1933895, источник