X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Требуется решение: перенаправление с несуществующих страниц на индекс
profican
profican
Topic Starter сообщение 5.11.2013, 19:59; Ответить: profican
Сообщение #1


Старожил
******

Группа: Active User
Сообщений: 1242
Регистрация: 30.6.2010
Поблагодарили: 294 раза
Репутация:   36  


И так, многим хорошо знакомая история с географией - кроме основного сайта (domain.com) существуют региональные (например - 1a, 2a), приклепленные к главному в виде страниц и/или поддоменов третьего уровня:
domain.com/1a/, 2a.domain.com и т.д.

Когда в форму поиска введен существующий адрес, проблем не возникает - php-скрипт показывает то, что релевантно данному региону. Но как быть, если введен еще пока не зарегистрированный адрес, скажем - 3а? Выводить 404-ю страницу - не выход.

Требуется решение - показывать общий мастер-сайт (domain.com/index.php), но в окне адреса браузера удерживать страницу или поддомен: domain.com/3а или 3а.domain.com (не принципиально, как проще и быстрее). Возможно ли это сделать в принципе? Если да, то буду благодарен за намеки, подсказки, ссылки и всё т.п.


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
marv
marv
сообщение 5.11.2013, 23:43; Ответить: marv
Сообщение #2


Частый гость
**

Группа: User
Сообщений: 57
Регистрация: 4.11.2013
Поблагодарили: 36 раз
Репутация:   10  


Если php скрипт получает регион в виде параметра, например site/index.php?location=3a (с помощью .htaccess его можно привести к виду site/3a), то скрипт проверяет есть ли такой регион в списке регионов и если нет то задаёт дефолтный (например 1a) или выводит страницу выбора региона и завершает выполнение.
Если у вас используется MVC фреймворк то там обычно уже есть встроенные механизмы для таких задач.

Если вы хотите получить адреса такого вида - 3a.site.com, то вам скорей всего понадобится VDS и настроить http сервер чтобы он запускал текущий скрипт при обращении к хосту *.site.com. А в php можно будет потом получить регион с помощью $_SERVER['HTTP_HOST'].

Самый простой и универсальный вариант - дописать в файле .htaccess
ErrorDocument 404 /404.php
И в файле 404.php обработать запрошенный url и отобразить то что вам нужно.
Но так лучше не делать.

P.S. Напишите подробнее на базе чего вы делаете сайт (или это самописный скрипт), и вам скажут что-то конкретное smile.gif

Сообщение отредактировал marv - 5.11.2013, 23:48


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
profican
profican
Topic Starter сообщение 6.11.2013, 7:47; Ответить: profican
Сообщение #3


Старожил
******

Группа: Active User
Сообщений: 1242
Регистрация: 30.6.2010
Поблагодарили: 294 раза
Репутация:   36  


marv,

php скрипт получает 3а регион в виде параметра, например site/index.php?location=3a ... скрипт проверяет есть ли такой регион в списке регионов и если нет то задаёт дефолтный (например 1a)


Вот дефольтный, как раз, задавать в адресной строке и не надо. Надо задать искомый (3а), а показать (!) - дефольтный (index).


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
marv
marv
сообщение 6.11.2013, 7:59; Ответить: marv
Сообщение #4


Частый гость
**

Группа: User
Сообщений: 57
Регистрация: 4.11.2013
Поблагодарили: 36 раз
Репутация:   10  


profican, я имел в виду примерно следующее поведение скрипта
$location = $_GET['location'];
if(!in_array($location, $regions_array)) // Если выбранного региона нет в массиве добавленных, устанавливаем дефолтный
{
    $location = "default"; // или $location = $regions_array[0];
}
// Далее выводим контент учитывая регион

Т.е. редиректа нет, адресная строка не меняется, замена производится внутри скрипта)

P.S. При таком подходе для поисковых систем стоит добавить тег (потому что вы получите бесконечное количество дублей)
<link rel="canonical" href="правильный адрес страницы"/>


Сообщение отредактировал marv - 6.11.2013, 8:11


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
profican
profican
Topic Starter сообщение 2.12.2013, 4:29; Ответить: profican
Сообщение #5


Старожил
******

Группа: Active User
Сообщений: 1242
Регистрация: 30.6.2010
Поблагодарили: 294 раза
Репутация:   36  


Думаю, что так и сделаем - как ни крутились, но без обращения к БД сразу же из индекса не обойтись. Хотя и приходится "заплатить" несколько лишних микросекунд.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется копирайтер для долгосрочного сотрудничества
Нужен хороший повествователь
4 PostBrigada 582 Вчера, 1:26
автор: PostBrigada
Открытая тема (нет новых ответов) Индексирование страниц
9 munch 1674 14.12.2017, 12:23
автор: Akeeloq
Открытая тема (нет новых ответов) Требуется пригласить участников в группу
7 riut81 964 12.12.2017, 17:53
автор: VilD
Открытая тема (нет новых ответов) Требуется рерайтер на английском
2 Alex-777 367 11.12.2017, 19:31
автор: Needlz
Открытая тема (нет новых ответов) Требуется хостинг
5 tiptopvkr 845 11.12.2017, 12:59
автор: tiptopvkr


 



RSS Текстовая версия Сейчас: 16.12.2017, 11:38
Дизайн