Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Человеко понятный URL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Serga
Отправлено: 26 Октября, 2008 - 08:31:24
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




Эта тема уже обсуждалась на форуме, но как сделать, чтобы коректно работал URL с кирилецей?

Файл: .htacces
CODE (text):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. RewriteRule ^sss/(.*)$ /loadpage.php [NC]


Файл: loadpage.php
PHP:
скопировать код в буфер обмена
  1. <?
  2. $request = urldecode($_SERVER['REQUEST_URI']);
  3. echo iconv("UTF-8", "WINDOWS-1251", $request);
  4. ?>


Запрос серверу (без пробела):
http:// site.ru/sss/тест

На экране напечатает: /sss/тест

Кажется все нормально, но не во всех браузерах. Например в Opere которая установлена на Ubunte напечатает: "/sss/кРокОзЯблы", то есть запрос серверу передается не в кодировке UTF-8.

1. Можно ли как то узнать кодировку запроса от браузера к серверу?
2. Возможно ли настроить apache, чтобы от браузера принимал запросы только в кодировке UTF-8 или чтобы сам перекодировал запрос в UTF-8?
 
 Top
valenok
Отправлено: 26 Октября, 2008 - 18:00:05
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




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

CODE (text):
скопировать код в буфер обмена
  1. <?php
  2. header("Content-Type: text/html; charset=utf-8");
  3. ?>
  4.  
  5. <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  6.  


-----
Truly yours, Sasha.
 
My status
 Top
Serga
Отправлено: 26 Октября, 2008 - 18:17:26
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




С header'ом, все нормально, да и браузер отображает коректно.
Кодировка запроса от браузера к серверу не всегда UTF-8.
 
 Top
valenok
Отправлено: 26 Октября, 2008 - 18:59:07
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




У запроса нет кодировки


-----
Truly yours, Sasha.
 
My status
 Top
Champion Супермодератор
Отправлено: 26 Октября, 2008 - 19:05:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Вы где пытаетесь это напечатать? Просто на странице? наряду с другим текстом? Откуда тогда проблема берется, я не пойму. И вообще не создавайте файлы и прочие вещи с кириллическими именами и не будет таких проблем
 
 Top
ALEN
Отправлено: 27 Октября, 2008 - 09:08:17
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Champion
Вопрос идет в строке запроса (там где url).
Serga
Русские буквы в транлит ельзя перевести?
 
 Top
Serga
Отправлено: 27 Октября, 2008 - 13:14:23
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




ALENМожно, но тогда эфект русского урла пропадает.
1. Гугл с яндексом понимают транслит, но не всегда.
2. С рускими буквами при размещениии ссылки будут работь якоря, что не мало важно.
Например: кто то размещает ссылку на страницу вашего сайта, в большенстве случаев будет выглядеть так http: //site.ru/тест, слово тест будет в этом случае якорем на страницу, что придаст вес при ранжировании.
 
 Top
ALEN
Отправлено: 27 Октября, 2008 - 13:27:38
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Serga
Т.е. тут чисто принципиально русский текст. Тогда нужно углублятся ниже нежели сервер, т.к. если у Вас уже в некоторых браузерах все ок, то нужно смотреть проблему браузеров и т.д.

Serga пишет:
1. Гугл с яндексом понимают транслит, но не всегда.

Скорей русский текст не всегда, а вот транслит - это чисто из a-z делать запросы (ну и еще некотрые символы) - его он всегда будет отлично читать.
 
 Top
Serga
Отправлено: 27 Октября, 2008 - 14:13:24
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Авг. 2008  


Помог: 0 раз(а)




ALEN
Проблема здесь одна браузеры кодируют url поразному.
Википедия как то определяет кодировку.
Щас ковыряю их движок может разберусь.
 
 Top
ALEN
Отправлено: 27 Октября, 2008 - 14:34:21
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


Помог: 11 раз(а)




Serga
Хотя знаеш я листал сейчас немного и мне кажется - это на сервере, что-то - нужно читать как минимум htaccess
(Добавление)
А кодировка на самой странице не имеет значения
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB