ЧПУ для самописа - за и против

L
На сайте с 07.12.2007
Offline
351
#11
rustrek:
Я тут переписывая самопис с толкнулся с проблемой. Решил сделать ЧПУ для него, с технической стороны нет ни каких проблем...

С вашим "самописом" как раз есть/будут проблемы.

Посмотрите как красиво можно обратиться к вашей страничке. А в FireFox/Opera даже вот так.

Мало того, что кучу дублей можно насоздавать, да ещё и с "нужными" ключевиками в url.

PS: Нельзя так движки писАть.

R
На сайте с 19.07.2010
Offline
64
#12

ну я тут как раз с с ним и разбираюсь. пока пришёл к такому выводу

RewriteRule ^news/([0-9]+)/? /index.php?action=news&nid=$1&%{QUERY_STRING} [L]

думаю как ограничить правильно

Сейчас его пилю http://newsrbk.ru/ (http://newsrbk.ru/)
SM
На сайте с 03.09.2009
Offline
83
#13

В базе хранить название странички и при выдаче сверять запрошенный адрес, есть в бд выдаешь контент, несходятся урлы 404

R
На сайте с 19.07.2010
Offline
64
#14

ну я так и сделал только проверку ещё не сделал, просто записываю в базу в отдельное поле транслит

$_POST[seo_title] = mb_strtolower(trim($_POST[title]), 'windows-1251');


$_POST[seo_title] = strtr($_POST[title], array("А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
" "=>"_", "/"=>"", ","=>"", "."=>"", "?"=>"",
"\""=>"", "'"=>"", "["=>"", "]"=>"", ":"=>"", ";"=>"", "№"=>""
));

+ нагрузка поменьше получается, только проверку ещё написать

---------- Добавлено 24.06.2012 в 14:46 ----------

Ladycharm:
С вашим "самописом" как раз есть/будут проблемы.

Посмотрите как красиво можно обратиться к вашей страничке. А в FireFox/Opera даже вот так.
Мало того, что кучу дублей можно насоздавать, да ещё и с "нужными" ключевиками в url.

PS: Нельзя так движки писАть.

попробуйте сейчас, чуть подправил...

C
На сайте с 19.02.2010
Offline
77
#15
rustrek:
попробуйте сейчас, чуть подправил...

всё равно получается, что такая страница существует, 404 надо выдавать

R
На сайте с 19.07.2010
Offline
64
#16
crystalbit:
всё равно получается, что такая страница существует, 404 надо выдавать

я сейчас только чуть подправлю, вот как отправляет http://newsrbk.ru/news/179528-nemetskie_vrachi_yutimoshenko_nelzya_otpravlyat_v_sud.html

поправил, сейчас должно быть всё ок

L
На сайте с 07.12.2007
Offline
351
#17
crystalbit:
404 надо выдавать

Может, не 404, а делать редирект 301 на правильный url?

ID записи в БД известен, надо сгенерить правильный url и, если он не совпал с запрошенным - сделать 301 Redirect на него.

Тогда внешнее ссылочное не пропадёт, если в url допущена ошибка/опечатка, главное чтобы она была не в номере ID.

rustrek:
поправил, сейчас должно быть всё ок

Да, сейчас правильно отдаёт заголовок 404 Not found.

PS: С ЧПУ стОит заморачиваться, плюсы от него есть.

R
На сайте с 19.07.2010
Offline
64
#18
Ladycharm:

Да, сейчас правильно отдаёт заголовок 404 Not found.

PS: С ЧПУ стОит заморачиваться, плюсы от него есть.

ага, только башка начинает закипать уже ).

почему-то не срабатывает ссылка http://newsrbk.ru/news/179843-v_ssha_obyyavili_samuyu_urodlivuyu_sobaku_v_mire.html

делаю так

RewriteRule ^news/([0-9]+)-([A-Za-z0-9-]+).html$  /index.php?action=news&nid=$2&%{QUERY_STRING} [L]

подскажите что косячу? что то не пойму уже. наверное надо выключить комп уже )

C
На сайте с 04.02.2005
Offline
291
#19

ой..

RewriteRule ^news/([0-9]+)-([A-Za-z0-9-]+).html$ /index.php?action=news&nid=$2&%{QUERY_STRING} [L]

посмотрите в сторону флага QSA

A
На сайте с 03.02.2011
Offline
25
#20
rustrek:

Увы использование киррилицы в URL, это пока мечты.

Расскажите это Википедии.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий