Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Ссылки в адресной строке русскими буквами

#1 lesli007

lesli007
  • Пользователь
  • 108 сообщений
  • Репутация: -4
0

Отправлено 24 Март 2011 - 03:44

Здравствуйте!
Как человек создаю сайт, в адресной строке латинские буквы (каталоги, идентификаторы, файлы и тд). Но просят чтобы все было русскими буквами. Типа ляля.рф/песни/
Подскажите пожалуйста как это делается

 

 

  • 0

#2 Игорян

Игорян
  • Пользователь
  • 296 сообщений
  • Репутация: 10

Отправлено 24 Март 2011 - 12:01

Ну для начало домен купите в зоне .рф а вообще это называется чпу что в переводе человека понятный url, поюзайте гугл :)
  • 0

#3 Игорян

Игорян
  • Пользователь
  • 296 сообщений
  • Репутация: 10

Отправлено 24 Март 2011 - 12:45

Если движок wordpress то там есть вроде бы seo плагин какой-то :)
  • 0

#4 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 24 Март 2011 - 18:17

домен куплен, меня интересует именно слова русские в каталогах
  • 0

#5 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 24 Март 2011 - 19:03

Никак не могу найти готового решения по русским буквам. Первый раз сталкиваюсь с такой проблемой, поэтому сразу к вам!
  • 0

#6 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 24 Март 2011 - 20:32

Друзья, помогите пожалуйста. Прошарил все чпу уже и не понял как присвоить страницам отображение русских названий
  • 0

#7 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 24 Март 2011 - 21:05

есть несколько файлов. напишу точнее - хочу что название отображалось такие название для след страниц:
index.php сайт.рф/о_компании
kontaktu.php сайт.рф/контакты
и тд.

есть файл view_proekt.php?id=1 , где ловлю идентификаторы и вывожу фотки проектов. его бы тоже как нибудь сайт.рф/наши проекты
  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 24 Март 2011 - 21:16

lesli007, тут сразу надо обратиться к RFC (не знаю номер), в котором сказано, что ASCII кодировка не может быть использована в URL. Отсюда вывод - сайт придётся делать с charset utf-8 (хотя возможно и конвертом можно обойтись).
Как русские символы в URL привести к нужному виду:
1) Составляем строку URL
2) Кодируем URL с помощью функции rawurlencode() (есть ещё конечно функция urlencode()), но она отклоняется от RFC1738 стандарта)
читаем статью - Русские символы в URL

P.s.: Кстати, ссылка, которую я вам привел на статью, содержит русские символы.
  • 0

#9 lesli007

lesli007
    Topic Starter
  • Пользователь
  • 108 сообщений
  • Репутация: -4

Отправлено 24 Март 2011 - 21:35

Прочитал. Там идет дискуссия о плюсах и минусах таких ссылок и лишь в каментах идет объяснение (в котором мудрено все объяснено).
Прочитал описание функции которую вы мне порекомендовали.
Давайте по пунктам:
1. Составляем строку урл: сайт.рф/news.php
2. Как кодируем? сайт.рф/rawurlencode('news.php') Так?

Если не сложно приведите полноценный пример как откодировали и что получили

На другом форуме видел подобное(это из той оперы вообще?):

Пишите в .htaccess
Код

RewriteEngine on
RewriteBase /
 
# если запросили не папку и не файл, то
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /script.php?$1 [NS]
В script.php для теста напишите следующее:
Код PHP

<?php
header('Content-Type: text/plain; charset=utf-8');
print_r($_SERVER);
?>

Сейчас пробовал "/абв", работает. Среди переменных в $_SERVER есть то, что нужно.


  • 0

#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 24 Март 2011 - 21:57

lesli007,

Прочитал описание функции которую вы мне порекомендовали.
Давайте по пунктам:
1. Составляем строку урл: сайт.рф/news.php
2. Как кодируем? сайт.рф/rawurlencode('news.php') Так?

1) Вы же хотели русские символы в запросе. Поэтому ссылка должна быть, к примеру, вида:
сайт.рф/раздел/категория/Название-статьи.html
2)
$url = "раздел/категория/Название-статьи.html";
$url = rawurlencode($url);
$url = "http://сайт.рф/".$url;
В результате получится ссылка в $url вида:
http://сайт.рф/%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%2F%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%2F%D0%9D%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8.html

В строке браузера
http://сайт.рф/раздел/категория/Название-статьи.html
Только не забываем - кодировка должна быть utf-8

На другом форуме видел подобное(это из той оперы вообще?):

Это из оперы - разбираем ЧПУ-ссылки. Допустим... вот ссылка, которую я вам привел - такой же страницы реально не существует. Поэтому скрипт должен разобрать запрос и погнять, что хотел получить пользователь. То что вы привели:
1) При запросе пользователя проверяется наличие файла или папки, которую запросил пользователь
2) Если таковых нет, то всё, что идет после доменого имени (в нашем случае это /раздел/категория/Название-статьи.html) передается на обработку файлу script.php в качесте строки запроса, которая хранится в $_SERVER['QUERY_STRING'].

Если объяснять на пальцах. то пользователь запрашивает один URL, а серверу отдается другой URL на обработку. mod_rewrite делает подмену URL по указанным правилам.
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru