Съвет за редирект 301 в htaccess

diabolic.bg

The Old Wastelander
В сайта ми с вицове строежът на адресите е следният:
Код:
http://wasteland-bg.com/vic-land/jokes/1159/Танто-за-танто
Незнайно защо ботовете на Г. са решили, че имам адреси от типа:
Код:
http://wasteland-bg.com/vic-land/jokes/1159/
Още нещо важно - в сайта имам РНР скрипт, който премахва наклоненага черта, когато е накрая на адреса, защото се генерираха със и без наклонена черта и ставаше дублиране на съдържание. Съответно този скрипт превръща горния адрес във вида:
Код:
http://wasteland-bg.com/vic-land/jokes/1159
и това води до грешка 404.

Мога ли да направя редирект 301 от
Код:
http://wasteland-bg.com/vic-land/jokes/1159
към
Код:
http://wasteland-bg.com/vic-land/jokes/1159/Танто-за-танто
и как ще стане?
Благодаря предварително за всеки съвет!

EDIT
Ако това ще помогне, пренаписването на адресите става така:
Код:
RewriteRule ^vic-land/jokes/([0-9]+)/(.*)$ vic-land/joke.php?jokeid=$1 [L]
 
Последно редактирано:
Re: Съвет за редирект 301 в htaccess

Ако това е невъзможно да се измисли, моля помогнете като промените този скрипт така, че да премахва само слаша, който е след името на вица, а не след номера му.
Код:
<?php
// Removing slash from end of url

if (substr($_SERVER['REQUEST_URI'], -1) == '/') 
{ 
    $url = rtrim($_SERVER['REQUEST_URI'], '/'); 

    header("Location: {$url}"); 
    exit(); 
} 

?>
Ако слашът след номера на вица си остане, адресът работи. Как мога да обознача букви преди / в този ред:
Код:
if (substr($_SERVER['REQUEST_URI'], -1) == '/')
Трябва ми нещо подобно на това:
Код:
if (substr($_SERVER['REQUEST_URI'], -1) == 'char/')

Не съм наясно със синтаксиса на РНР.
Благодаря предварително!
 
Последно редактирано:
Re: Съвет за редирект 301 в htaccess

пробвай така
Код:
<?php
// Removing slash from end of url

if ((substr($_SERVER['REQUEST_URI'], -1) == '/') 
       && (!is_numeric(substr($_SERVER['REQUEST_URI'], -2, 1)))) 
{ 
    $url = rtrim($_SERVER['REQUEST_URI'], '/'); 

    header("Location: {$url}"); 
    exit(); 
} 

?>
 
Re: Съвет за редирект 301 в htaccess

моля 🙂

само не забравяй да сложиш cannonical, защото вицовете ти се отварят от 2 адреса така...
Благодаря за напомнянето. Аз сложих cannonical преди поне 6 месеца, но не съм сигурен колко го зачита Гугъл, въпреки че го измислиха те. Фактът е, че ми търси разни стари адреси, които е свалил от първите ми карти, които генерирах с някакъв куц генератор и отдавна вече не са актуални. Това е информация от преди около 2 години. Отдавна вече имам автоматична карта на сайта, която подава адресите с името инжектирано в тях, но те си търсят някакви вехтории... Каноникъла повтаря тези адреси с инжектираното име и би трябвало да са валидни само те.
 
Последно редактирано:
Re: Съвет за редирект 301 в htaccess

А, и друго се сетих - в края на името на вица не трябва да има цифра, иначе ще стане издънка 🙂 Примерно ако е ..../12345/няма-6-5/ няма да махне слеша накрая...
 
Re: Съвет за редирект 301 в htaccess

А, и друго се сетих - в края на името на вица не трябва да има цифра, иначе ще стане издънка 🙂 Примерно ако е ..../12345/няма-6-5/ няма да махне слеша накрая...
Аз също се сетих за това, но не е голям проблем. Досега от 1167 вица нямам нито един с цифра в името, въпреки че освен мен и няколко потребители добавят вицове. Ще внимавам за това. Когато друг пусне виц, той излиза за одобрение в админ панела и мога да го прекръстя, ако е нужно. Освен това слеш накрая се генерира само в някои случаи, например, ако заглавието завършва с многоточие.

П. П. Разбрах откъде е дошла и грешката. ИМАХ досега автоматично генериращ се urllist.txt за ботовете на Яху. Досега тези на Г. никога не са го чели, но на 8 септември внезапно са проявили интерес. Оказва се, че от него не могат да четат текста на кирилица и са сканирали само част от адресите до номера на вица. Изтрих файла от сайта и го забраних в robots.txt, като го подадох и за премахване в Гугъл, така че смятам да не ми предизвиква повече драми.
 
Последно редактирано:
Re: Съвет за редирект 301 в htaccess

KOBRETI, HEE-E-ELP!

Оказва се, че този вариант на скрипта не премахва 100% последния слеш. Ако има препинателен знак на края на заглавието, тогава е добре, но ако няма, чертата си остава.
Код:
http://wasteland-bg.com/vic-land/jokes/1161/Убедителен-аргумент/
Код:
http://wasteland-bg.com/vic-land/jokes/1160/Логични-изводи/
ПРактически май не работи, защото сайтът си генерира слеш по негов избор накрая на някои заглавия, а на други няма.
Моля те, дай друг вариант!

П.П. За момента върнах стария вариант.
 
Последно редактирано:
Re: Съвет за редирект 301 в htaccess

След като имаш каноникъл, в дългосрочен план, ще изчезнат "кофтите" УРЛ.
Лошото е, че след като ми гръмна сървъра, в Г. са се натрупали толкова грешки, че сигурно половин година няма да ги изчисти. Затова искам да сведа възможните нови до минимум.
Загубих ранга, получих наказание - изобщо, отрязаха ми главата...
 
Re: Съвет за редирект 301 в htaccess

дай ми списък на няколко УРЛ, за които работи моя вариант, и на няколко за които не работи, за да мисля какъв е проблемът....
 
Re: Съвет за редирект 301 в htaccess

дай ми списък на няколко УРЛ, за които работи моя вариант, и на няколко за които не работи, за да мисля какъв е проблемът....
Честно казано не мога да хвана някаква закономерност в генерирането на краен слаш в сайта и затова ми се струва, че твоят скрипт в момента не прави нищо. Просто при първия тест съм се подвел, а също така и теб - заработиха "скъсените" адреси на Гугъл, които завършваха с цифра (но те работят и без да има скрипт), видях няколко адреса без слаш и реших, че всичко е наред.
Но дори да махна скрипта, имам адреси със и без слаш накрая, така че е пълна мътилка.
По тази причина не мога да ти дам такъв списък. Ако имаш нови идеи, аз ще тествам и ще пиша какво става. 😡
 
Re: Съвет за редирект 301 в htaccess

Дай едно
PHP:
echo substr($_SERVER['REQUEST_URI'], -1);
преди иф-а да видим какво плюе на адреси с / и на такива без.
 
Re: Съвет за редирект 301 в htaccess

bgkulinar, изписва последния символ от адреса - слаш, точка (при ...) или ?.

KOBRETI, на адреса с Убедителен аргумент изписва 2 на празна страница, а на Логични изводи - 8
На този адрес, който е без слаш, изписва ?
Код:
http://wasteland-bg.com/vic-land/jokes/1164/Жена-ти-как-е?
 
Последно редактирано:
Re: Съвет за редирект 301 в htaccess

bgkulinar, изписва последния символ от адреса - слаш, точка (при ...) или ?.
Тогава сложи следния код вместо другия

Код:
<?php
// Removing slash from end of url

if (substr($_SERVER['REQUEST_URI'], -1) == '/') 
{ 
    $url = rtrim($_SERVER['REQUEST_URI'], '/'); 
    echo $url;
//   header("Location: {$url}"); 
    exit(); 
} 

?>
и кажи за всеки случай ., ?, / какво връща.
 
Re: Съвет за редирект 301 в htaccess

Извежда празна страница и постави слаш в адреса дори след въпросителната, където преди нямаше.
Страницата е абсолютно празна и няма сорс код.
 
Последно редактирано:

Back
Горе