Не срабатывает редирект, если в ссылке более одного уровня
Добавлено: Вс май 22, 2016 4:39 pm
Здравствуйте, ребяты.
Есть проблема. Делаю редирект со старого сайта на новый.
Правки делаю в файле .htaccess в корне нового сайта.
Заголовок файла
Собсна сами редиректы, созданные вручную, отрабатывает как запрошено, в адресной строке URL меняется, т.е. с ними все ок.
Дальше URL меняется, но не по редиректу, который задал я.
Обратите внимание URL источника многоуровневый (вида: "/internet-magazin/ссылка2/ссылка3").
В итоге получаю ссылку вида:
вместо:
и даже не:
Пробовал поменять синтаксис, писал вместо "Redirect" "RedirectMatch", "Redirect 301', "Redirect Permanent" - все без толку.
Как только в теле ссылки появляется "/internet-magazin/" ни один редирект не страбатывает как надо.
Что делать как быть, помогите пожалуйста.
Есть проблема. Делаю редирект со старого сайта на новый.
Правки делаю в файле .htaccess в корне нового сайта.
Заголовок файла
- Код: выделить все
Options -Indexes
ErrorDocument 404 /404.php
<IfModule mod_php5.c>
php_flag session.use_trans_sid off
#php_value display_errors 1
#php_value mbstring.internal_encoding UTF-8
</IfModule>
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/jpeg "access plus 3 day"
ExpiresByType image/gif "access plus 3 day"
ExpiresByType image/png "access plus 3 day"
ExpiresByType text/css "access plus 3 day"
ExpiresByType application/javascript "access plus 3 day"
</IfModule>
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteEngine On
RewriteBase /
redirect /_vti_bin http://www.moydomen.ru
redirect /scripts http://www.moydomen.ru
redirect /MSADC http://www.moydomen.ru
redirect /c http://www.moydomen.ru
redirect /d http://www.moydomen.ru
redirect /_mem_bin http://www.moydomen.ru
redirect /msadc http://www.moydomen.ru
RedirectMatch (.*)\cmd.exe$ http://www.moydomen.ru$1
Собсна сами редиректы, созданные вручную, отрабатывает как запрошено, в адресной строке URL меняется, т.е. с ними все ок.
- Код: выделить все
redirect /iphone-1 http://moydomen.ru/services/
redirect /titulnaya http://moydomen.ru/
redirect /skupka http://moydomen.ru/second_hand/second.php
redirect /internet-magazin http://moydomen.ru/catalog
redirect /kontakty http://moydomen.ru/contacts/
redirect /remont-noutbuka http://moydomen.ru/services/
Дальше URL меняется, но не по редиректу, который задал я.
Обратите внимание URL источника многоуровневый (вида: "/internet-magazin/ссылка2/ссылка3").
- Код: выделить все
redirect /internet-magazin/vendor/hoco http://moydomen.ru
В итоге получаю ссылку вида:
- Код: выделить все
http://moidomen.ru/catalog/vendor/hoco
вместо:
- Код: выделить все
http://moydomen.ru
и даже не:
- Код: выделить все
http://moydomen.ru/internet-magazin/vendor/hoco
Пробовал поменять синтаксис, писал вместо "Redirect" "RedirectMatch", "Redirect 301', "Redirect Permanent" - все без толку.
Как только в теле ссылки появляется "/internet-magazin/" ни один редирект не страбатывает как надо.
Что делать как быть, помогите пожалуйста.