Имеется
Server version: Apache/2.4.27 (Unix)
Задача: Нужно выполнить редирект на корень во всех случаях, если это не касается служебных файлов WordPress и урла /products/test.html
Прописал в .htaccess(знаю знаю, не кричите, что это плохо) следующее:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/products/test.html [NC]
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !^/wp- [NC]
RewriteCond %{REQUEST_FILENAME} !wp-login.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST} [QSD,R=301,L]
RewriteCond %{REQUEST_FILENAME} favicon.ico [NC]
RewriteRule ^(.*)$ $1 [L]
RewriteCond %{REQUEST_FILENAME} xmlrpc.php [NC]
RewriteRule ^(.*)xmlrpc.php$ /xmlrpc.php [L]
</IfModule>
Пытаюсь обратиться: http://site.com/products/test.html
И вижу в ответ:
HTTP/1.1 301 Moved Permanently
Date: Wed, 30 Aug 2017 05:42:04 GMT
Server: Apache/2
Location: http://site.com
Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK
Date: Wed, 30 Aug 2017 05:42:05 GMT
Server: Apache/2
Vary: User-Agent
Content-Type: text/html; charset=UTF-8
Ребят, где проблема? Для проверки сделал так(чтобы увидеть, что вообще в переменной), вместо:
RewriteRule ^(.*)$ http://%{HTTP_HOST} [QSD,R=301,L]
RewriteRule ^(.*)$ %{REQUEST_URI} [QSD,R=301,L]
И как оказалось %{REQUEST_URI} здесь равно /index.php Это как?