mod_rewrite, замена букв.

12
Рогожин Константин
На сайте с 03.08.2007
Offline
105
2066

Здравствуйте.

Возможно ли создать правило в mod_rewrite, которое заменяет буквы при выводе ссылки на странице? Например, файл называется Абвгд.php в корневой директории, как мне прописать правило, чтобы A->a, б->b, в->c, г->d, д->e? И в итоге откроется файл Абвгд.php, но ссылка в адресной строке браузера будет отображаться как http://85628298.ru/abcde.php.

Проще говоря, как сделать, чтобы при нажатии на ссылку http://85628298.ru/abcde.php открылся http://85628298.ru/Абвгд.php с сервера? Спасибо.

Домены .RU: Партнерские программы, реклама, SEO, SMM (/ru/forum/989625) | Ветеринария, диета, общая медицина, стоматология (/ru/forum/981876) | Игровые домены (/ru/forum/981968) | Спортивные ставки, форекс рынок, денежные займы, бинарные опционы (/ru/forum/983438)
M
На сайте с 16.09.2009
Offline
278
#1

http://httpd.apache.org/docs/2.3/mod/mod_rewrite.html

см.

RewriteMap Directive -> External Rewriting Program

В "Practical Solutions" есть ряд примеров, как использовать RewriteMap

с скриптом в качестве обработчика отображения.

Проще - никак.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
Himiko
На сайте с 28.08.2008
Offline
560
#2

Мне интересно, с какой целью создавать файлы с русскими названиями на сервере?)

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
alexspb
На сайте с 14.11.2005
Offline
187
#3

Рогожин Константин, не понимаю, какая необходимость возникает

а) в использовании кирилицы в названиях файлов на сервере

б) в использовании файлов вообще (за исключением необходимого набора скриптов)

PS myhand, с чего дали ссылку на доки на французском? )) хотя мне было прикольно ))

Рогожин Константин
На сайте с 03.08.2007
Offline
105
#4

Использую скрипт листинга, он берет название файла и делает его ссылкой. И естественно выводит на сайте название файла, делая его ссылкой.

Мне надо, чтобы браузер, допустим, Opera представлял Абв.php в виде %c0%e1%e2.php, а скрипт выдает как %D0%90%D0%B1%D0%B2.php (и переход не случается из-за ошибки). Вы не знаете что это за кодировки и как изменить способ представления ссылки в браузере?

Попробовал IE8, Opera 9, Opera 10, Mozilla Firefox 3 и Netscape Navigator 9. Все браузеры, кроме Netscape Navigator 9, смогли перейти только со стандартной Апачевой разлистовки к файлу Абв.php (правда, сначала приходилось включать 1251 кодировку). И только Netscape Navigator 9 смог перейти и из Апачевой разлистовки к файлу Абв.php, и по ссылке, созданой скриптом, к файлу Абв.php.

Мне не критична латинская ссылка, критично название, но оно получается равно ссылке. Вот и думал, что через mod_rewrite можно попасть к файлу Абв.php через замену.

[umka]
На сайте с 25.05.2008
Offline
456
#5

Это уж каждый браузер как хочет так и изголяется над нелатинскими буквами.

У меня вот сафари показывает русские буквы в виде русских букв :) Даже если запросить чё-нить типа "%c0%e1%e2".

Вобщем, считайте, что все эти названия идентичны.

У вас отличия, видимо, из-за того, что скрипт берет название в utf-8

Лог в помощь!
Рогожин Константин
На сайте с 03.08.2007
Offline
105
#6

Переход после вывода скрипта случается только если файл вида %c0%e1%e2.php. А вот браузеры изголяются как хотят, поэтому и не случается переход. :)

Мне хотя бы понять что это за кодировки %c0%e1%e2 и %D0%90%D0%B1%D0%B2, может тогда получится как-то скрипт доработать. Естественно я готов и к другим решениям. Может и на смену на nginx. Как думаете, с ним будет ситуация получше?

Himiko
На сайте с 28.08.2008
Offline
560
#7
Использую скрипт листинга, он берет название файла и делает его ссылкой

Зачем вообще название файла делать на русском языке?

Лично я думаю, что нужно просто забыть как страшный сон про файлы с русскими названиями, чтобы не создавать себе дополнительных проблем.

orphelin
На сайте с 02.07.2006
Offline
261
#8

Рогожин Константин, это url encode http://www.php.su/functions/?urlencode

Рогожин Константин
На сайте с 03.08.2007
Offline
105
#9
orphelin:
Рогожин Константин, это url encode http://www.php.su/functions/?urlencode

Спасибо большое, но не понял разницу.

Правильно ли я понимаю, что

%c0%e1%e2 - 16-ричная

%D0%90%D0%B1%D0%B2 - 10-ричная

?

Следовательно, все браузеры, кроме Netscape Navigator, не поняли ссылок 10-ричной системы после их образования скриптом?

orphelin
На сайте с 02.07.2006
Offline
261
#10
Рогожин Константин:
Правильно ли я понимаю, что
%c0%e1%e2 - 16-ричная
%D0%90%D0%B1%D0%B2 - 10-ричная

почему десятиричная? и там и там 16-ричная.

десятиричная это 0 1 2 3 4 5 6 7 8 9 и все, а 16-ная:

0 1 2 3 4 5 6 7 8 9 A B C D E F

т.е с0 это будет символ с кодом 192

12

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