Тъпи SEO въпроси 52.

Чел съм за пренасочването и как то може да повлияе (или не, ако се прави правилно) на SEO.

Сменям платформата за съдържание на уебсайта си от Drupal на PHP персонализиран код.

В текущия си сайт имам две връзки, които сочат към една и съща връзка по този начин:

... / node / 123

... / my-node-title

Главно защото Drupal ви позволява да създавате персонализирани връзки, така че всяка статия има такава по подразбиране (node/123) и поръчковия (/my-node-title).

Въпросът ми е какво да направя, за да предотвратя загубата на SEO, което всяка връзка може да има.

В новия уебсайт всички статии са структурирани по следния начин: content.php?id=123

Съхранил съм в базата данни персонализираната връзка към всяка статия.

Вместо да направя 301 пренасочване, аз пренаписвам всички връзки, които не съществуват, за да бъдат пренасочени към страница redirect.php за обработка на заявката. Там взимам низа от връзката, търся го в базата данни и пренасочвам потребителя.

Процесът е следният:

във .htaccess файл:

RewriteRule ^.*$ ./redirect.php 

В redirect.php:

Грабвам $_SERVER['REQUEST_URI'] и с помощта на explode () получавам последната част от връзката (т.е. my-node-title), търся я в базата данни и хващам идентификатора на статията (т.е. 123) и я записвам в $link променлива.

След това използвам функцията header () и правя пренасочването: header('Location: '.$link);

Така че хората все още кликват върху .../my-node-title но когато статията се зареди в лентата за навигация /content.php?id=123

Бих искал да знам вашите коментари за това решение. Знам, че при SEO няма фиксирани правила или сигурност в каквото и да е, но бих искал да знам дали това, което правя, е приемливо. Благодаря!

  • 2 Защо не изпратите 301 пренасочване от PHP скрипта? Може да го направи: stackoverflow.com/questions/7324645/ ... Това е просто въпрос на използване header('HTTP/1.1 301 Moved Permanently'); преди линията за местоположение.
  • Имате предвид да изпратите и информацията? Като: header('HTTP/1.1 301 Moved Permanently'); и тогава header('Location: '.$link);?
  • 2 Да. Вижте пренасочване на PHP заглавието 301 - какви са последиците?
  • Благодаря ти! И така, смятате, че дори връзката да завърши с? Id = X, това не би трябвало да повлияе на SEO?
  • Просто задавам Location header с PHP имплицитно ще задейства PHP също да изпрати състояние на отговор 302. Няма пренасочване, освен ако не е изпратен статус 3xx.

Използвайте 301 пренасочване преди местоположение:

header('HTTP/1.1 301 Moved Permanently'); 

Също, Можете да използвате правило за пренаписване с 301 за всяка статия в htaccess. Htaccess се генерира всеки път от php скрипт в cron и / или при добавяне на нова статия. Това обслужва заявка по-бързо от redirect.php, ако имате по-малко от хиляди статии. Това беше, можете да направите четливи от човека URL адреси и за статии.
По този начин пропускате изпълнението на php и една db заявка, за да вземете името на статията и да намерите идентификатор.

Ето как изглежда един от моите htaccess: Част между специални коментари, заменени със скрипт, всички останали конфигурации остават непроменени по скрипт:

# here non rewrite options, skipped  Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ https://%1%{REQUEST_URI} [R=301,L] # startreplace RewriteRule ^HumanReadableTitle1.html$ blog.php [E=HumanURL:1,L] RewriteRule ^HumanReadableTitle2.html$ certificates.php [E=HumanURL:1,L] RewriteRule ^HumanReadableTitle3.html$ blog_post.php?id=15 [E=HumanURL:1,L] RewriteRule ^HumanReadableTitle4.html$ blog_post.php?id=16 [E=HumanURL:1,L] # endreplace  

„HumanReadableTitles“, прочетено от DB. UTF8 кодиран, но не и URL кодиран, mod_rewrite позволява това.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?