Нужно привести все УРЛ, ведущие на статьи к такому виду:
сайт.ру/дд/мм/ггг/заголовок статьи латинскими буквами
Вобщем-то я имею представление о том, как это сделать, но прежде я и пишу сюда, чтобы избежать банальных ошибок.
1) Первая трудность, которая возникла:
УРЛ на статью передает ее id, а мне не нужно, чтобы id не было в УРЛ
2) Заголовки статей частично на русском, как лучше переводить их на латынские буквы? Я планировал забабахать большой switch с кесом на каждую русскую букву.
3) Не могу понять в чем проблема:
УРЛ имеет вид сайт.ру/гггг/мм/дд/id_номер статьи
В мод реврайт:
RewriteRule ^(.*?)/(.*?)/(.*?)/([0-9]+)$ article.php?id=$4 [L]
В результате когда перехожу по ссылке на полную статью - весь ее контент выводится, но ни шаблона, ни верстки - ничго нет. Картинка кстати тоже не показывается
Спустя 20 часов, 29 минут, 2 секунды (10.08.2010 - 11:15) Nord написал(а):
Ответ на второй вопрос:
Можно кейсами, можно воспользоваться str_replace:
Остальные вопросы я не совсем понял
Можно кейсами, можно воспользоваться str_replace:
$rus = array('а', 'б' ... 'я' );
$en = array('a', 'b' ... 'ya');
$res = str_replace($rus, $en, $string);
Остальные вопросы я не совсем понял
Цитата |
1) Первая трудность, которая возникла: УРЛ на статью передает ее id, а мне не нужно, чтобы id не было в УРЛ |
Что вас ограничивает?
Цитата |
3) Не могу понять в чем проблема: |
Как выглядит конечная ссылка, которая выводит содержимое правильно?
Спустя 5 часов, 25 минут, 1 секунда (10.08.2010 - 16:40) ilystone написал(а):
Nord
Спасибо за пункт 2.
По поводу пункта 1 и 3:
Вот оригинальная конечная ссылка на статью:
http://gatl.ru/article.php?id=1464
Я хочу, чтобы ссылка была такого вида:
http://gatl.ru/дд/мм/ггг/заголовок статьи латинскими буквами
Дак вот, все параметры можно без проблем извлекать из базы и ими монипулировать в урл, но ведь обработчик article.php получает id статьи, а его в http://gatl.ru/дд/мм/ггг/заголовок статьи латинскими буквами нет..
Конечно, можно передовать вместо id и заголовок, тогда проблема исчерпана. Но надежно ли это?
Спасибо за пункт 2.
По поводу пункта 1 и 3:
Вот оригинальная конечная ссылка на статью:
http://gatl.ru/article.php?id=1464
Я хочу, чтобы ссылка была такого вида:
http://gatl.ru/дд/мм/ггг/заголовок статьи латинскими буквами
Дак вот, все параметры можно без проблем извлекать из базы и ими монипулировать в урл, но ведь обработчик article.php получает id статьи, а его в http://gatl.ru/дд/мм/ггг/заголовок статьи латинскими буквами нет..
Конечно, можно передовать вместо id и заголовок, тогда проблема исчерпана. Но надежно ли это?
Спустя 5 часов, 6 минут, 56 секунд (10.08.2010 - 21:47) Nord написал(а):
Цитата |
Конечно, можно передовать вместо id и заголовок, тогда проблема исчерпана. Но надежно ли это? |
Вполне надежно
Но можно, конечно, передавать заголовок и искать статью в базе по заголовку, как на википедии. В чем трудность переписать article.php, чтобы он принмал ссылки вида http://gatl.ru/article.php?title=заголовок...инскими_буквами?
Спустя 11 часов, 40 минут, 23 секунды (11.08.2010 - 09:28) ilystone написал(а):
Nord
Трудности такой нет, но ведь заголовок русскими буквами, значит и в ссылке вида http://gatl.ru/дд/мм/ггг/заголовок, заголовок придется передоваться русскими буквами, а это неприемлимо..
Трудности такой нет, но ведь заголовок русскими буквами, значит и в ссылке вида http://gatl.ru/дд/мм/ггг/заголовок, заголовок придется передоваться русскими буквами, а это неприемлимо..
Спустя 2 часа, 21 минута, 29 секунд (11.08.2010 - 11:49) Nord написал(а):
Ну, воможно я и не прав, но я бы в базе дополнительно хранил еще и заголовок транслитом
А ссылки вида: http://gatl.ru/дд/мм/ггг/id_статьи/заголовок статьи латинскими буквами то же не устраивают?
А ссылки вида: http://gatl.ru/дд/мм/ггг/id_статьи/заголовок статьи латинскими буквами то же не устраивают?
Спустя 19 минут, 28 секунд (11.08.2010 - 12:09) ilystone написал(а):
Nord
Да, оба варианта уместны, но я пожалуй выберу 1й, он мне больше подходит. У меня раньше джумла была дак там стоял компонент генерации sef ссылок, дак под него отдельная база была..
Да, оба варианта уместны, но я пожалуй выберу 1й, он мне больше подходит. У меня раньше джумла была дак там стоял компонент генерации sef ссылок, дак под него отдельная база была..
Спустя 9 часов, 32 минуты, 19 секунд (11.08.2010 - 21:41) ilystone написал(а):
Во всем разобрался кроме пункта 3:
Вот ссылка:
http://gatl.ru/2010/07/21/panasonic-lumix-...paktnom-korpuse
В БД она храниться в точно такомже виде
Вот RewriteRule:
RewriteRule ^(.*)$ article.php?link=$1 [L]
Выдает полную статью, но без верстки и изображений (последние теоритически есть, но ломаные).
Взглянул на url картинки в статье: http://gatl.ru/2010/07/21/images/stories/LUMIX-TS10.jpg
Получается, что работать он пытается не из корневого каталога, а из http://gatl.ru/2010/07/21/, т.е. из текущего..
Есть ли возможность заставить его работать из корневой директории?
Вот ссылка:
http://gatl.ru/2010/07/21/panasonic-lumix-...paktnom-korpuse
В БД она храниться в точно такомже виде
Вот RewriteRule:
RewriteRule ^(.*)$ article.php?link=$1 [L]
Выдает полную статью, но без верстки и изображений (последние теоритически есть, но ломаные).
Взглянул на url картинки в статье: http://gatl.ru/2010/07/21/images/stories/LUMIX-TS10.jpg
Получается, что работать он пытается не из корневого каталога, а из http://gatl.ru/2010/07/21/, т.е. из текущего..
Есть ли возможность заставить его работать из корневой директории?
Спустя 10 часов, 19 минут, 8 секунд (12.08.2010 - 08:00) Nord написал(а):
Добавь в <head>:
<base href="http://gatl.ru/">
Спустя 1 час, 11 минут, 49 секунд (12.08.2010 - 09:12) ilystone написал(а):
Nord
Спасибо большое, благодаря тебе во всем наконец разобрался
+ репу)
Спасибо большое, благодаря тебе во всем наконец разобрался
+ репу)