Добрый день!
Сменили сервер. На прошлом сервере использовался веб-сервер Apache 1.3, после переноса используется Apache 2.2.
ЧПУ работает нормально, но 301 редиректы начали добавлять "хвост" из get параметров.
Понимаю что новый апач по другому обрабатывает редиректы, но не знаю как исправить. Нужно чтобы "хвост" из get перестал добавляться.
Файл .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.site.ru
RewriteRule (.*) http://www.site.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
RewriteRule ^([^/]+)/(.*)/(.*)/(.*)/(.*).htm(.*)$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3&subsublevel=$4&last=$5 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)/(.*).htm(.*)$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3&subsublevel=$4 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*).htm(.*)$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3 [QSA,L]
RewriteRule ^([^/]+)/(.*).htm(.*)$ /index.php?lang=ru&module=$1&id=$2 [QSA,L]
RewriteRule ^([^/]+).htm(.*)$ /index.php?lang=ru&module=$1 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)/(.*)/(.*)/$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3&subsublevel=$4&last=$5 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)/(.*)/(.*)$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3&subsublevel=$4&last=$5 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)/(.*)/$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3&subsublevel=$4 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)/(.*)$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3&subsublevel=$4 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)/$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3 [QSA,L]
RewriteRule ^([^/]+)/(.*)/(.*)$ /index.php?lang=ru&module=$1&id=$2&sublevel=$3 [QSA,L]
RewriteRule ^([^/]+)/(.*)/$ /index.php?lang=ru&module=$1&id=$2 [QSA,L]
RewriteRule ^([^/]+)/(.*)$ /index.php?lang=ru&module=$1&id=$2 [QSA,L]
RewriteRule ^([^/]+)$ /index.php?lang=ru&module=$1 [QSA,L]
Redirect 301 /basket.htm http://www.site.ru/order.htm
Redirect 301 /cat/1811.htm http://www.site.ru/cat/1485.htm
Redirect 301 /cat/1811/196900.htm http://www.site.ru/cat/1485/172914.htm
Redirect 301 /cat/1811/196871.htm http://www.site.ru/cat/1485/172914.htm
Redirect 301 /cat/1811/196631.htm http://www.site.ru/cat/1485/172914.htm
Update:
Уточнение. Неправильно обрабатываться начали только редиректы, указанные внизу:
Redirect 301 /basket.htm http://www.site.ru/order.htm
Redirect 301 /cat/1811.htm http://www.site.ru/cat/1485.htm
Redirect 301 /cat/1811/196900.htm http://www.site.ru/cat/1485/172914.htm
Redirect 301 /cat/1811/196871.htm http://www.site.ru/cat/1485/172914.htm
Redirect 301 /cat/1811/196631.htm http://www.site.ru/cat/1485/172914.htm
Update2:
Покапал
stackoverflow.com и мне подошло только решение переоформить редирект в RewriteRule и перенести в начало. Если кто знает более адекватное решение, буду рад выслушать.
RewriteEngine On
RewriteRule ^/?basket.htm$ http://www.site.ru/order.htm? [R=301,L]
RewriteRule ^/?cat/1811.htm$ http://www.site.ru/cat/1485.htm? [R=301,L]
RewriteRule ^/?cat/1811/196900.htm$ http://www.site.ru/cat/1485/172914.htm? [R=301,L]
RewriteRule ^/?cat/1811/196871.htm$ http://www.site.ru/cat/1485/172914.htm? [R=301,L]
RewriteRule ^/?cat/1811/196631.htm$ http://www.site.ru/cat/1485/172914.htm? [R=301,L]
RewriteRule ^/?cat/1811/196602.htm$ http://www.site.ru/cat/1485/172914.htm? [R=301,L]
RewriteRule ^/?cat/1811/209251.htm$ http://www.site.ru/cat/1485/209134.htm? [R=301,L]
RewriteRule ^/?cat/1811/182989.htm$ http://www.site.ru/cat/1485/171792.htm? [R=301,L]
RewriteRule ^/?cat/1811/183153.htm$ http://www.site.ru/cat/1485/171237.htm? [R=301,L]
RewriteRule ^/?cat/1811/207975.htm$ http://www.site.ru/cat/1485/167128.htm? [R=301,L]
RewriteRule ^/?cat/1811/202143.htm$ http://www.site.ru/cat/1485/194430.htm? [R=301,L]
RewriteRule ^/?cat/1811/197326.htm$ http://www.site.ru/cat/1485/168958.htm? [R=301,L]