Настроить mod_rewrite в Apache

Цена договорная • безналичный расчёт, электронные деньги
19 сентября 2014, 13:38 • 2 отклика • 25 просмотров
Есть сайт на HostCMS. Сайт будет заменяться новым, но со старого пока нужно отдавать статику и оставить доступ к админке, так как новый сайт пока подкачивает старые данные из самодельного REST API на /rest/.

По итогу, все запросы кроме “^/(admin|upload|rest)/” нужно перенаправлять на www-домен.

В .htaccess стандартное:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]
</IfModule>

Пробовали и так и сяк, но никак не получается чтобы работали одновременно и /admin/, и /rest/.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#RewriteCond %{REQUEST_URI} ^/rest/
#RewriteRule ^(.*)$ /index.php [L]

#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^/?(.*) http://www.%{HTTP_HOST}/$1 [L,R,NE]

#RewriteCond %{REQUEST_URI} ^/index.php
#RewriteRule .* - [L]

#RewriteCond %{REQUEST_URI} ^/(admin|rest)/
#RewriteRule ^(.*)$ /index.php [L]

#RewriteRule ^/(admin|rest)/ index.php [L]
#RewriteRule ^/(?!admin|rest)/ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R,NE]

RewriteCond %{REQUEST_URI} !^/(admin|upload|rest)/
RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L]
</IfModule>