Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Редирект динамической страницы на преобразованную htaccess файлом
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Товарищи, обчитался уже статей и форумов, но нигде внятного не написано или я дырявый не вижу. Можно ли сделать редирект с динамически созданой страницы вида:
/product.php?article=EC141244&name=DC-Motor-3-6V
Где слова выделенные жирным являются рандомными, а не в ручную прописаны для каждой ссылки. Везде примеры только для статики.
на страницу
/EC141244/DC-Motor-3-6V.html
Само преобразование работает. Это делается следующим кодом:
RewriteEngine On
#генерируем чпу ссылку для страницы товара
RewriteRule ^([^/]*)/([^/]*)\.html$ /product.php\?article=$1&name=$2 [L,R=301]
А вот редирект не получается, многие пишут что это невозможно, так ли это?
Логика же такая?:
1. Включаю мод реврайт
2. Затем преобразовываю ссылку
3. Затем думаю как сделать редирект с одной ссылки на другую преобразованную?
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Флаг не помогате, редирект не происходит. Преобразованная ссылка открывается только когда я вручную ее ввожу, по сути есть дубль
Такая
/product.php?article=EC141244&name=DC-Motor-3-6V
и такая
/EC141244/DC-Motor-3-6V.html
Две ссылки рабочие, но редирект именно с одной на другую не получается
пробовал еще так:
RewriteCond %{QUERY_STRING} ^article=$1&name=2$
Но все равно ноль результата
Строитель
Отправлено: 10 Августа, 2017 - 18:54:57
Участник
Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
zapatronen, вам именно в .htaccess нужен редирект? Или header('Location') тоже подойдёт? (Добавление)
А, если это для ЧПУ, то header('Location') тут не подходит.
zapatronen
Отправлено: 10 Августа, 2017 - 19:01:47
Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
Это для чпу чтобы ключевики вставить в ссылку
teleoperator27
Отправлено: 10 Августа, 2017 - 19:25:39
Посетитель
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
zapatronen пишет:
но редирект именно с одной на другую не получается
А при чем тут редирект? и откуда возьмется дубль? Ссылок без ЧПУ просто не будет нигде на сайте, какой дубль?
zapatronen
Отправлено: 10 Августа, 2017 - 19:32:29
Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
[quote=teleoperator27][/quote]
Я так рассуждаю, что если к одинаковой странице ведут две ссылки, то это дубли
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
zapatronen пишет:
Я так рассуждаю, что если к одинаковой странице ведут две ссылки, то это дубли
Правильно рассуждаете. Только неправильно то, что вы не имеете ввиду такой момент: если на сайте не будет ссылки без ЧПУ, то о каких дублях будет идти речь? Если на сайте все страницы с чпу, то и ссылки все должны быть с чпу, а не так, кто в лес, кто по дрова. Так работают все движки. А вы в данный момент пытаетесь изобрести велосипед без колес. Не придумывайте проблему, а просто сделайте, что бы на сайте сслыки были одного вида, и этой проблемы просто не станет.
zapatronen
Отправлено: 10 Августа, 2017 - 20:11:29
Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
[quote=teleoperator27][/quote]
Не понимаю все равно о чем вы.
Все ссылки в product.php и так преобразованы, а если я загоню сайт, который модифицирую вместо старой версии, то в выдаче будут ссылки не преобразованные и при клике пользователя на них будут вести на старые ссылки без чпу. Если я каким-то образом избавлюсь от старой ссылкы, то как я расскажу гугл, что ссылка теперь другая, кроме как редиректом
teleoperator27
Отправлено: 10 Августа, 2017 - 20:50:04
Посетитель
Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017
Помог: 21 раз(а)
А, так у вас сейчас проиндексированы ссылки без ЧПУ? А вы хотите ЧПУ внедрить? (Добавление)
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
[quote=teleoperator27][/quote]
Да в индексте висят без ЧПУ, пример ваш не работает
RewriteEngine On
RewriteRule ^(.*)product.php?article=([^/]*)&name=([^/]*)$ http://sub.easycraft.by/$2/$3 [R=301,L]
тут точно так переменные объявлять?
/2$/3$ или /$2/$3 ? (Добавление)
в общем я примерно понял, искать пример как редиректить со страницы на страницу и вместо get параметров использовать регулярные выражения, а в ссылке, которая должа показываться вставлять переменные
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
Помог: 0 раз(а)
не работает конструкция, видать как и говорят в нете что с гет параметрами косяки какие-то
например такая конструкция
RewriteRule ^dost.php$ http://sub[dot]easycraft[dot]by/dostavka.php [R=301,L]
работает, все редиректит
а ссылка с регулярками не хочет цепляться, вообще никакой реакции даже ошибок не выдает, пойду курить мануалы, отпишу если докопаюсь до истины
Покинул форум
Сообщений всего: 129
Дата рег-ции: Июль 2016
Помог: 5 раз(а)
GET-параметры не в правиле пишутся, а в условии с QUERY_STRING.
Вообще ситуация известная. Если делать только при помощи .htaccess, нужно каким-то образом избавиться от зацикливания, т.к. в реализации должны присутствовать два конфликтующих друг с другом действия – рерайт и редирект. Обычно для этого используют условие с THE_REQUEST.
Либо часть работы возложить на скрипт, как выше советовали. (Добавление)
Можно просто файл-обработчик переименовать в что-то вроде profuctslfurhfcdurexsopp.php – такой дубль вряд ли найдут, если вы сами его не засветите (Добавление)
Лучше всего конечно нативно обрабатывать ЧПУ в единой точке входа без использования обратной трансляции частей пути/всего пути в GET-параметры/GET-параметр, но это сложнее сделать.
zapatronen
Отправлено: 12 Августа, 2017 - 21:18:30
Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011
По клику на ссылку все меняется, но как вы говорили встречается зацикливание, продолжаю копать дальше, найду решение отрапартую. Попробую вникнуть во все что написали ниже
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.