Перенаправление HTACCESS, добавляющее ненужные параметры в URL

htaccess для перенаправления трафика нашего сайта.

Мы перенаправляем EXAMPLE.com на www.EXAMPLE.com, используя следующий код

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

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  -

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]*/)*index\.(html?|php)(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]*/)*)index\.(html?|php)$  http://www.example.com/$1  [R=301,L]

Но мы сталкиваемся с проблемой:
EXAMPLE.com/XYZ перенаправлен на WWW.EXAMPLE.com/?url=XYZ Но он должен быть перенаправлен на WWW.EXAMPLE.COM/XYZ

Итак, нам нужно удалить это ненужное? Url =

Спасибо..

1

Решение

Эта проблема происходит из-за неправильного порядка правил. Сохраняйте правила перенаправления перед маршрутизацией:

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  -

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]*/)*index\.(html?|php)(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]*/)*)index\.(html?|php)$  http://www.example.com/$1  [R=301,L]

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]