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
Форумы портала PHP.SU :: Версия для печати :: Теряется ли ссылочная масса при редиректе на php?
Форумы портала PHP.SU » » Вопросы новичков » Теряется ли ссылочная масса при редиректе на php?

Страниц (1): [1]
 

1. zapatronen - 15 Августа, 2017 - 09:55:54 - перейти к сообщению
Привет народ, собственно сабж. Интересует если устрою редирект со ссылки с одним гет параметром на ссылку с двумя гет параметрами, то теряется ли все качество прошлой ссылки не спадут ли позиции в выдаче?
2. miketomlin - 15 Августа, 2017 - 10:42:50 - перейти к сообщению
Делайте постоянный редирект (с 301-ым статусом), тогда поисковики со временем заменят в выдаче прежнюю страницу на целевую. В процессе возможны какие-либо пертурбации.
(Добавление)
А вообще нафига усложнять ссылку? Адресацию без крайней необходимости лучше вообще никогда не менять.
3. zapatronen - 15 Августа, 2017 - 11:15:30 - перейти к сообщению
[quote=zapatronen][/quote]

да потому что сеошники задолбали, дай им ключевик в ссылке и все тут я и добавил название товара в ссылку через get параметр, теперь все это привел в чпу, но остались старые ссылки с одним параметром
4. miketomlin - 15 Августа, 2017 - 11:25:28 - перейти к сообщению
Ну тогда полностью переходите на ЧПУ, а то как-то не комильфо получается.

Смотрите дублей не наплодите с добавлением доп. GET-параметра. Вообще ЧПУ – это скорее замена числовых идентификаторов символьными, нежели дополнение.
5. zapatronen - 15 Августа, 2017 - 12:23:25 - перейти к сообщению
miketomlin пишет:
Ну тогда полностью переходите на ЧПУ, а то как-то не комильфо получается.

Смотрите дублей не наплодите с добавлением доп. GET-параметра. Вообще ЧПУ – это скорее замена числовых идентификаторов символьными, нежели дополнение.



В том то и проблема, что наплодил, благо пока на тестовом делаю сайте и закрыл его от индексации.

Сначало был один GET, потом я поставил два GET и ссылку с двумя GET преобразовал и редиректил на ЧПУ без циклической переадресации, но ссылка с одним гет все еще остается, вот теперь гомаю голову как сделать чтобы был редирект с ссылки с одним гет на ссылку с двумя гет, которая редиректит на ЧПУ. Конечно щас поливать будут какашками, но я не вижу выхода как сделать редирект 301, пока старые ссылки не выпадут из индекса
6. miketomlin - 15 Августа, 2017 - 12:51:40 - перейти к сообщению
В данном случае лучше не делать двойной редирект.

Когда я писал выше, я подразумевал, что адрес с GET-параметрами тоже с натяжкой можно назвать ЧПУ. Теперь, как я понимаю, под ЧПУ вы подразумеваете адрес с путем вместо строки параметров. Т.е. делать редирект нужно примерно так: /?id=100500 -> /my-page (без промежуточного редиректа на /?id=100500&sid=my-page).
(Добавление)
Редиректы с неЧПУ в ЧПУ легко делаются при помощи хаков, плагинов и т.п. В популярных движках/CMS иногда поддерживаются прямо из коробки, например в WP. У вас какой движок?
7. zapatronen - 15 Августа, 2017 - 13:24:58 - перейти к сообщению
Изначально страница доступна:
product.php?id=PP361

После появился дубль:
product.php?id=PP361&sid=my-page
который преобразуется в
product.php/PP361/my-page.html

Один и тот же товар доступен по двум ссылкам:
product.php?id=PP361
и
product.php/PP361/my-page.html

Код преобразования без зацикливания для ссылки с двумя параметрами:
PHP:
скопировать код в буфер обмена
  1. RewriteCond %{ENV:REDIRECT_STATUS} ^$
  2. RewriteCond %{QUERY_STRING} ^article=([^&]*)&name=([^&]*)
  3. RewriteRule ^product\.php$ /%1/%2.html? [R=301,L]
  4. RewriteRule ^([^/]*)/([^/]*)\.html$ /product.php?article=$1&name=$2 [L]




Вот ту ти головоломка как убрать лишнюю переадресацию, чтобы сразу с
product.php?id=PP361 получать ЧПУ с еще одним параметром product.php/PP361/my-page.html



у меня сапомисный движок))) с бесплатными движками я уже намучался и они не удовлетворяют моим потребностям в функционале
8. miketomlin - 15 Августа, 2017 - 14:32:57 - перейти к сообщению
zapatronen пишет:
Изначально страница доступна:
product.php?id=PP361

После появился дубль:
product.php?id=PP361&sid=my-page
который преобразуется в
product.php/PP361/my-page.html

Один и тот же товар доступен по двум ссылкам:
product.php?id=PP361
и
product.php/PP361/my-page.html
А, это тот же сайт, который вы уже показывали. Исходные идентификаторы весьма странные, с буквами. В этих буквах что-то закодировано? Вам зачем вообще уровень вложенности в адресах повышать? Какие-то конфликты что ли мешают или пытаетесь скорость доступа увеличить за счет деления на группы? Гораздо проще, как ранее писал, оставить одни слаги (символьные идентификаторы). Вы, видимо, дописывали слаги к осн. идентификаторам, чтобы преобразование адресов делать в .htaccess по осн. идентификаторам, используя «мусорные ключи» чисто для SEO. Общими правилами в .htaccess тут не обойдешься – «мусорные ключи» нужно контролировать: либо прямо в .htaccess прописывать индивидуальные правила (что нереально для большого кол-ва элементов), либо сопоставлять поступивший слаг с хранимым в запрошенной записи и при несовпадении делать редирект на канонический адрес.

Я вам рекомендую перехватывать хаком (отдельным скриптом, запускаемым при запросах по адресам опред. формата) старые адреса и делать редирект на новые, в которых бы был только слаг без старого идентификатора. Чем городить такие двухкомпонентные пути, как вы показали, лучше просто добавьте компонент, указывающий на тип страницы, т.е. речь об одном из след. двух вариантов адресов:
/my-page.html
/product/my-page.html
Расширение – это сейчас рудимент, но в принципе можно оставить. Слаг product всегда один и тот же.

Цитата:
у меня сапомисный движок))) с бесплатными движками я уже намучался и они не удовлетворяют моим потребностям в функционале
Это похвально. Движок сами писали или кто-то помогал?
(Добавление)
Рекомендацию не дописал... Для работы новой адресации, естественно, нужно делать идентификацию страниц на основе слагов.
(Добавление)
Если идентификацию на основе слагов трудно реализовать, контроль слагов и редирект при несовпадении по-любому нужно делать.
9. zapatronen - 15 Августа, 2017 - 16:11:08 - перейти к сообщению
Все довольно проще идентификатор это артикул уникальный артикул товара, по нему я провожу все махинации с добавлением товара в корзину, выводе информации и так далее. Уровень вложенности если вы имеете ввиду параметр GET name, то он мне нужен, чтобы вставь туда ключевое слово для поисковой оптимизации и обогнать конкурентов по позициям в топе.
Да, просто приписал к ссылке, которая ведет к товару новый параметр в виде имени и получил ключевик в ссылке и дубли.

Да, вдухкомпонентные слаги не камельфо, в идеале оставить /my-page.html

Всего 800 таких страниц, думаю попробую сначало реализовтаь все уровне htpaccess все равно это же как я понимаю временная мера, пока старые ссылки не пропадут из индекса.

По поводу хака, вы имеете ввиду редирект на php аля header location?

Затеял движок для себя любимого, зарабатываю онлайн торговлей. Помогают люди на форумах, статьи в интернетеи так далее))
10. miketomlin - 15 Августа, 2017 - 17:21:33 - перейти к сообщению
Еще раз: только через .htaccess для 800 страниц не получится. Не забывайте, что вам могут подложить к каждому идентификатору дофига левых слагов, а не только тот, который вы сами придумали. Если где-нибудь появятся подобные левые бэки, ПС их начнут хавать и вам выписывать дубли! Такое вполне вероятно, даже если не брать в расчет проделки конкурентов. Кстати, 800 страниц – это немного. Тут самое сложное слаги наклепать. Или вы их тоже как-то автоматом генерируете? Даже если оставлять в адресе ваши оригинальные идентификаторы, нужно модифицировать движок на предмет проверки слага после выборки записи по оригинальному идентификатору, т.е. если в адресе поступает корректный слаг вы выдаете штатный контент, иначе – ошибку 404 или делаете редирект на каконический адрес (с корректным слагом).

Цитата:
По поводу хака, вы имеете ввиду редирект на php аля header location?
Ну да. Слаг для редиректа по каноническому адресу нужно же откуда-то брать. Лучше всего брать из той же таблицы БД с данными соотв. страниц (надеюсь, вы используете БД для хранения осн. контента. Или нет?). Еще обратите внимание на такой момент: редирект можно делать только для старых адресов без слагов, а для новых адресов вроде /артикул/левый-слаг можно ограничиться 404-ой ошибкой.

Цитата:
Да, вдухкомпонентные слаги не камельфо, в идеале оставить /my-page.html
Это сложнее сделать. Нужно использовать идентификацию слагами, хотя у вас и так использовались нечисловые идентификаторы (артикулы), т.е. нужно просто искать по полю со слагами, а не с артикулами. Поле, естественно, должно быть первичным ключом или юником.

Гляну еще ваш сайт. Может, получится подобрать какое-нибудь легкое готовое решение.
(Добавление)
Есть подходящий двиг именно для вывода страниц по каноническим адресам. Можно без проблем сделать разные форматы адресов для страниц продуктов:
/слаг-в-нижнем-регистре
/product/слаг-в-нижнем-регистре
и даже
/артикул-желательно-в-нижнем-рег истре/слаг-в-нижнем-регистре
/слаг-в-нижнем-регистре/артикул-желательно-в-нижнем-регистре
(в нижнем регистре, потому что двиг SEO-ориентированный и будет пытаться автоматом понижать регистр, делая лишний редирект, если в адресе есть большие буквы; для нек. поисковиков разный регистр букв – это тоже дубли)

Фишка в том, что вам не нужно модифицировать product.php, навешивая на него доп. функционал (делая вилку «контент/редирект»). Вы просто делаете в product.php редирект со старых адресов (если есть желание, при ошибках можно отдавать управление в движок). Движок штатно отдает приоритет при обработке адресов, содержащих имена существующих файлов. Он нативно обрабатывает ЧПУ, т.е. промежуточные внутренние адреса вроде /product.php?id=100500&sid=my-page ему в принципе не нужны, но вы в вашем product.php можете делать редирект и с этих адресов – просто не обращайте внимания на наличие доп. GET-параметров и делайте редирект только по значению GET-параметра с идентификатором (артикулом).

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

Движок наш, так что смогу проконсультировать.
11. zapatronen - 16 Августа, 2017 - 14:45:35 - перейти к сообщению
Если честно первый раз встретился с понятием кононический адрес. Вы говорите про Атрибут rel=canonical ? То есть Оставить две страницы с одинаковым контентом, но явно указать через атрибут, какая страница является главной, то есть преобразованая в ЧПУ ссылка? И не совсем понял про какой движок вы говорите, про вашу разработку? Если да, то как взгялунть на него и что он будет стоить?
12. miketomlin - 16 Августа, 2017 - 15:32:36 - перейти к сообщению
Канонический – это просто осн. адрес, если у страницы их несколько. Применительно к выдаче контента/редиректу это тот адрес, под кот. выдается контент, а не делается редирект. Под разными адресами идентичные страницы лучше не выдавать вообще. Хотя можно использовать то, о чем вы говорите, но rel=canonical все же предназначено немного для другого, а для идентичных страниц его используют только те, кто не в состоянии избавиться от дублей техническими средствами.

Легкое готовое решение – это наш движок. Если бы я хотел вам его продать, я бы сразу об этом сказал. У нас тут вроде доверительная беседа без какой-то коммерции (не, вы конечно можете по итогам успешного разрешения вашей проблемы в порыве чувств бросить мне на пивко, но я спокойно переживу, если вы этого не сделаете Радость ). Только пообещайте не распространять, чтобы не нагружать вас лицензионной морокой. Там несколько файлов всего. Сейчас скину ссылку на описание.

 

Powered by ExBB FM 1.0 RC1