Net Форумы

 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Генеральный спонсор: www.Net.Ru - серьезный, профессиональный хостинг.

Как сделать редирект: site.ru./... => site.ru/... ?

 
Начать новую тему   Ответить на тему    Список форумов Net Форумы -> Apache настройки
Предыдущая тема :: Следующая тема  
Автор Сообщение
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 23.05.2007 10:08    Заголовок сообщения: Как сделать редирект: site.ru./... => site.ru/... ? Ответить с цитатой

Подскажите, как сделать автоматический редирект вида site.ru./*** => site.ru/***
От этой точки сплошь проблемы.


Последний раз редактировалось: Ark@di (24.05.2007 10:59), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
AP
Core team


Зарегистрирован: 14.02.2005
Сообщения: 444
Откуда: LostHold

СообщениеДобавлено: 23.05.2007 12:12    Заголовок сообщения: Ответить с цитатой

можно по-подробнее? какие проблемы?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 23.05.2007 22:11    Заголовок сообщения: Ответить с цитатой

Кто-то где-то случайно дал ссылку на сайт с точкой на конце (перед слэшем).
С этой точкой сам сайт отображается вроде как нормально.
При переходах точка в адресе сохраняется, и до поры до времени посетитель ни о чём не подозревает.

Проблемы начинаются при запуске скриптов, обработке параметров типа referer.
Также, на сайте есть элементы, защищённые от копирования, и они работают строго лишь в своём домене (например, внедрённые шрифты).
И наконец, это вопрос эстетики — у сайта есть адрес и этот адрес должен быть единым и неизменным.

Прошу помочь настроить серверный редирект изымающий эту точку из адреса.
Спасибо.


Последний раз редактировалось: Ark@di (08.06.2007 13:22), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 07.06.2007 17:02    Заголовок сообщения: Ответить с цитатой

Как я вижу, решить эту задачку сложнее, чем кажется.
На нескольких форумах задавал вопрос — везде кто-то брался решать и… тишина.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andy
Member


Зарегистрирован: 01.01.1970
Сообщения: 114

СообщениеДобавлено: 08.06.2007 12:31    Заголовок сообщения: Ответить с цитатой

А в чем вообще заключается проблема? Вроде и так и так (с точкой, и без) одинаково апач работает.

Если же, с точкой получаются неправильные пути со страницы к изображениям, то, возможно <BASE HREF=http://site.ru/> решит эту проблему.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 08.06.2007 13:25    Заголовок сообщения: Ответить с цитатой

В чём проблема, уже описано — см. выше.
Использовать тут для решения BASE — на мой взгляд, полнейшая лажа.

Речь идёт о том, чтобы страница по адресу с точкой даже не отображалась,
а сразу вызывала 301-й редирект на эту же страницу, но без точки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andy
Member


Зарегистрирован: 01.01.1970
Сообщения: 114

СообщениеДобавлено: 08.06.2007 13:34    Заголовок сообщения: Ответить с цитатой

Ark@di писал(а):
В чём проблема, уже описано — см. выше.


Виноват, не заметил пост выше.


Последний раз редактировалось: Andy (08.06.2007 13:56), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andy
Member


Зарегистрирован: 01.01.1970
Сообщения: 114

СообщениеДобавлено: 08.06.2007 13:53    Заголовок сообщения: Ответить с цитатой

Возможно, примерно такое решение вам подойдет:

Код:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^site\.ru\.+$ [NC]
RewriteRule (.*) http://site.ru/$1 [R=301,L]
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 08.06.2007 14:04    Заголовок сообщения: Ответить с цитатой

Пробовал — реакции никакой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andy
Member


Зарегистрирован: 01.01.1970
Сообщения: 114

СообщениеДобавлено: 08.06.2007 14:16    Заголовок сообщения: Ответить с цитатой

Ark@di писал(а):
Пробовал — реакции никакой.


Странно, на локальном компьютере в .htaccess, лежащем в корне сайта, данная запись редиректит как требуется.

Попробуйте, еще RewriteBase добавить или убрать ^ в RewriteCond перед site

Код:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^site\.ru\.+$ [NC]
RewriteRule (.*) http://site.ru/$1 [R=301,L]
 


и вместо ^site\.ru естественно нужно подставить адрес своего сайта (это на всякий случай, если кто не знающий ничего о mod_rewrite будет читать Wink )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 08.06.2007 14:56    Заголовок сообщения: Ответить с цитатой

Не-а.

Похоже, сервер просто не понимает разницы между HOST "site.ru" и "site.ru."
К чему же эта точка относится? Не к URI же…
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andy
Member


Зарегистрирован: 01.01.1970
Сообщения: 114

СообщениеДобавлено: 08.06.2007 15:07    Заголовок сообщения: Ответить с цитатой

Ark@di писал(а):
Не-а.
Похоже, сервер просто не понимает разницы между HOST "site.ru" и "site.ru."


Жаль. Crying or Very sad

Может быть, кто нибудь еще предложит решение.

Ark@di писал(а):
К чему же эта точка относится? Не к URI же…


Можно попробовать проверить:

$ENV{'HTTP_HOST'};
$ENV{'REQUEST_URI'};
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Andy
Member


Зарегистрирован: 01.01.1970
Сообщения: 114

СообщениеДобавлено: 08.06.2007 23:26    Заголовок сообщения: Ответить с цитатой

Andy писал(а):
Можно попробовать проверить:


Проверил скриптом
Код:

#!/usr/bin/perl

print "Content-Type: text/plain\n\n";

print "HTTP_HOST ";
print $ENV{'HTTP_HOST'};

print "\nDOCUMENT_ROOT ";
print $ENV{'DOCUMENT_ROOT'};

print "\nREQUEST_URI ";
print $ENV{'REQUEST_URI'};

print "\nSCRIPT_NAME ";
print $ENV{'SCRIPT_NAME'};

exit;


оказывается сервер вообще не видит эту точку в конце, т.е. ему что есть точка, что нет точки, переменные сервера от этого не меняются, как будто нет ее вообще. Question

P.S. на локальном апаче все по-другому, точка в конце адреса видна апачем.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Ark@di
Member


Зарегистрирован: 01.01.1970
Сообщения: 77
Откуда: г. Минск

СообщениеДобавлено: 08.06.2007 23:38    Заголовок сообщения: Ответить с цитатой

Это значит, что серверный редирект настроить не удасться?

Любой другой способ уже будет некрасив. Как жаль…

Спасибо за помощь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Net Форумы -> Apache настройки Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB
Русская поддержка phpBB