Мой .htaccess применяет RewriteCond
из предыдущих RewriteRule
к текущим RewriteRule
.
Например, example.com/acme
перенаправляется на http://www.example.com/index.php?url=acme
.
Почему эта конфигурация будет перенаправлена на index.php
?index.php
RewriteRule
даже не R=301
.И RewriteCond
, которые делают исключения, когда request_uri
содержит строку acme
, даже не должны применять себя к этому RewriteRule
, поскольку у них есть свои RewriteRule
.
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(txt) [OR]
RewriteCond %{REQUEST_URI} robots\.txt
RewriteCond %{REQUEST_URI} !acme
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_URI} !\.(txt) [OR]
RewriteCond %{REQUEST_URI} robots\.txt
RewriteCond %{HTTPS} !=off
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]