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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


И так, многим хорошо знакомая история с географией - кроме основного сайта (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


Если 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


marv,

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


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


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


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


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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Требуется помощь по сайту на "ВордПресс"
Закрылся доступ в панель администратора
13 Tia2 2110 Сегодня, 12:06
автор: diviner99
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрая индексация страниц сайта и обратных ссылок - 2Index
37 2Index 6558 Вчера, 16:17
автор: 2Index
Открытая тема (нет новых ответов) Требуется копирайтер-постер
11 Hanj 2572 2.4.2024, 12:40
автор: Skyworker
Открытая тема (нет новых ответов) требуется помощь с themasoftware (Темапостером)
0 Taylor 614 16.3.2024, 18:41
автор: Taylor
Открытая тема (нет новых ответов) Требуется контент-менеджер
1 Grimov 1156 8.2.2024, 9:54
автор: projectadmin


 



RSS Текстовая версия Сейчас: 16.4.2024, 19:56
Дизайн