Проблема с редиректом

Nono

Новичок
Добрый вечер.Подскажите, почему не работает редирект 301 как надо. Сменил домен сайта. в .htaccess прописал
PHP:
RewriteCond %{HTTP_HOST} ^uk-rost\.com
RewriteRule ^(.*)$ http://build-74[dot]ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www[dot]uk-rost\[dot]com
RewriteRule ^(.*)$ http://build-74[dot]ru/$1 [R=301,L]
Но перенаправляет с любой страницы по старому адресу исключительно на главную страницу по новому адресу.
 

AnrDaemon

Продвинутый новичок
Потому что такие вещи делаются на уровне сервера, а не .htaccess'ом.
<VirtualHost *>
ServerName x
Redirect permanent / http://y/
</VirtualHost>
 

AnrDaemon

Продвинутый новичок
Ответ не становится неправильным только от того, что он тебе не понравился.
 

Nono

Новичок
Ответ не становится неправильным только от того, что он тебе не понравился.
Потому что такие вещи делаются на уровне сервера, а не .htaccess'ом.
<VirtualHost *>
ServerName x
Redirect permanent / http://y/
</VirtualHost>
--------------------
Почему такие вещи не делаются .htaccess'ом?Почему в моем случае не получилось как нужно, хотя везде описывают что работать должно?Почему при этом вы приводите код, который судя по всему также нужно прописывать в .htaccess и почему он будет работать?Почему вы называете конфигурационный файл веб сервера "не на уровне сервера"?
В вашем случае такой должен быть ответ. Если хотите поумничать, нечего было и писать.
 

fixxxer

К.О.
Партнер клуба
Я объясню.

В htaccess можно делать очень мало что, у него автоматически подразумеваемый контекст Directory, соответствующий его нахождению. И изначально этот файл задуман только для простейших вещей, таких, как установка прав доступа к директории (отттуда слово access в названии).

Нормальные директивы там использовать почти нельзя, но вышло так, что можно использовать директивы Rewrite-модуля. Этим начали пользоваться на shared-хостингах, чтобы конфигурировать все, что попало. Слышали про архитектуртную концепцию "костыль"? Вот оно самое и есть. Ужас в том, что вместо нормальных, читаемых директив приходится выдумывать навороты на регулярных выражениях, с инвертированной логикой, которые сложно читать, с птичьим языком, напоминающим шутки типа языка brainfuck, они в сто раз сложнее нормальной конфигурации для восприятия, но люди настолько по опыту shared-ов к этому привыкли, что продолжают использовать этот ужас вместо того, чтобы прописать нормальную конфигурацию в httpd.conf своего сервера.

Если вы почему-то до сих используете shared-хостинг, то в его панели управления должны быть средства задать необходимые вам редиректы для разных доменов, или, как минимум, раскидать разные домены по разным подкаталогам. Если же все настолько запущено, что это единственный способ - можно включить отладку реврайтов, уж логи вебсервера-то вам должны быть доступны в какой-нибудь папочке logs, и отлаживать это все - так же, как программу. Конкретным советом вряд ли помогу, живого апача я не видел уже 10 лет, пишу по памяти со времен apache 1.3.
 
Последнее редактирование:

Nono

Новичок
Я объясню.

В htaccess можно делать очень мало что, у него автоматически подразумеваемый контекст Directory, соответствующий его нахождению. И изначально этот файл задуман только для простейших вещей, таких, как установка прав доступа к директории (отттуда слово access в названии).

Нормальные директивы там использовать почти нельзя, но вышло так, что можно использовать директивы Rewrite-модуля. Этим начали пользоваться на shared-хостингах, чтобы конфигурировать все, что попало. Слышали про архитектуртную концепцию "костыль"? Вот оно самое и есть. Ужас в том, что вместо нормальных, читаемых директив приходится выдумывать навороты на регулярных выражениях, с инвертированной логикой, которые сложно читать, с птичьим языком, напоминающим шутки типа языка brainfuck, они в сто раз сложнее нормальной конфигурации для восприятия, но люди настолько по опыту shared-ов к этому привыкли, что продолжают использовать этот ужас вместо того, чтобы прописать нормальную конфигурацию в httpd.conf своего сервера.

Если вы почему-то до сих используете shared-хостинг, то в его панели управления должны быть средства задать необходимые вам редиректы для разных доменов, или, как минимум, раскидать разные домены по разным подкаталогам. Если же все настолько запущено, что это единственный способ - можно включить отладку реврайтов, уж логи вебсервера-то вам должны быть доступны в какой-нибудь папочке logs, и отлаживать это все - так же, как программу. Конкретным советом вряд ли помогу, живого апача я не видел уже 10 лет, пишу по памяти со времен apache 1.3.
Спасибо большое. В том то и дело, что сайт находится у компании-разработчика сайта, доступа к панели они ясное дело не дают.На аккаунте у них сайтов 20, у меня же доступ только к папке сайта. Поэтому и остался вариант с .htaccess. Пытаюсь разобраться сам.
 

AnrDaemon

Продвинутый новичок
Потребуйте от них прописать CNAME вашего сайта у них на ваш новый хостинг.
Или сами пропишите, если есть доуступ к настройкам DNS у них.
 

Nono

Новичок
Проблему решил. Редирект работал неправильно из-за строчки RewriteRule ^ index.php [L] в начале файла. Убрал ее и все встало на свои места.
 
Сверху