кириллические URI

Автор: sonic
Последнее изменение: 2010-08-05
Раздел: htaccess
Когда я столкнулся с проблемой кириллических ссылок в URI, то вразумительной информации на эту тему я не нашел, пришлось самому во всем разбираться. И как видите по этому ресурсу - мне это удалось.

Сначала следует обговорить один очевидный факт - хостинг должен поддерживать функцию RewriteEngine.

Итак начнем.

1 шаг. Создаем файл .htaccess

2 шаг. Прописываем в нем следующие строчки:
Код:
RewriteEngine on
RewriteRule ^(.*)$ index.php?var=$1%{QUERY_STRING}

1я строчка - мы включаем модуль mod_rewrite.
2я строчка - мы указываем что все что будет введено после слеша будет передаваться параметру var. Например: /контакты - строка "контакты" будет передаваться параметру var. А уж как использовать полученную информацию решайте сами.

Если хотите использовать 2 параметра, то содрежимое соответственно будет выглядеть так:
Код:
RewriteEngine on
RewriteRule ^(.*)/(.*)$ index.php?var=$1&var2=$2%{QUERY_STRING}

Как видите, параметры должны разделяться знаком, указанным между 2 параметрами, в нашем случае это знак слеша (/).

Теперь перейдем собственно к кирилическим ссылкам.

Допустим мы выводим ссылки так:
Код:
$link='/ссылка';
echo '<a href="'.$link.'">ссылка</a>';

Но правильно будет выводить путем кодирования русских символов в 16-ричную систему (как использует это википедия):
Код:
$link='/ссылка';
echo '<a href="'.urlencode($link).'">ссылка</a>';

теперь наша кириллическая ссылка будет выглядеть так: /%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B (по крайней мере в IE), во всех остальных браузерах будет выглядеть так: /контакты .

Если вам помогла пошаговая инструкция (кириллические URI) или просто понравилась, то, пожалуйста, не поленитесь - поставьте рейтинг - от этого зависит судьба автора.

Рейтинг инструкции: 3.4/5 (38 голосов учтено)


Напишите свою пошаговую инструкцию!