Redirect кахъри

Caprice

Active Member
Обновявам един сайт и се налага пренасочване на старите URLи към нови. На теория би трябвало да стане много лесно:

RewriteRule ^product1\.html /нов-продукт [R=301,L,NE]
или така
RewriteRule ^product1\.html /%D0%BD%D0%BE%D0%B2\-%D0%BF%D1\%80%D0%BE%D0%B4%D1\%83%D0%BA%D1\%82 [R=301,L,NE]

На практика новите URLи са на кирилица (старите на латиница) и директно удря 404. Тук-там има бегло обяснено как да стане, ама ядец.
Много молим някой, ако някой знае как става да ми обясни с думи прости.
 
Такъв редирект ползвам на много места и работи без никакъв проблем:

Код:
RewriteRule ^product\.html /нов-продукт

Проблем има, когато кирилицата е на първо място:

Код:
RewriteRule ^продукт\.html /nov-produkt

Тогава на някои сървъри не ми го мачва и го правя така:

Код:
RewriteRule ^\xD0\xBA\xD1\x80\xD0\xB5\xD0\xB4\xD0\.html /nov-produkt [R=301,L]

Та може да пробваш да конвертираш адреса, правя го така:

PHP:
<?php
echo str_replace('%', '\x', urlencode('продукт'));
die;
?>
 
От: Re: Redirect кахъри

Обновявам един сайт и се налага пренасочване на старите URLи към нови. На теория би трябвало да стане много лесно:

RewriteRule ^product1\.html /нов-продукт [R=301,L,NE]
или така
RewriteRule ^product1\.html /%D0%BD%D0%BE%D0%B2\-%D0%BF%D1\%80%D0%BE%D0%B4%D1\%83%D0%BA%D1\%82 [R=301,L,NE]

На практика новите URLи са на кирилица (старите на латиница) и директно удря 404. Тук-там има бегло обяснено как да стане, ама ядец.
Много молим някой, ако някой знае как става да ми обясни с думи прости.


Пробвах втория редирект и работи. Проблема, който виждам е, че евентуално не би ли трябвало да не редиректваш директно към 'нов-продукт' ами примерно към produkti/нов-продукт , което пък да е редиректнато към produkti.php с параметър 'нов-продукт'

Или друго, което ми хрумва е, че се опитваш да имаш направо файл с кирилско име нов-продукт.html, което аз лично не успях навремето да го подкарам и четох ли нещо не се сещам, но съм се отказал от файлове с кирилски имена.
 
От: Redirect кахъри

Мерси, мерси. Тръгна.
Ей това успя да сработи с всичките 100-на адреса :-o

Код:
RewriteRule ^product1\.html /%D0%BD%D0%BE%D0%B2\-%D0%BF%D1\%80%D0%BE%D0%B4%D1\%83%D0%BA%D1\%82 [R=301,L,NE]
 

Горе