Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Русские буквы в адресной строке
 
 автор: Красная_шляпа   (14.10.2010 в 21:16)   письмо автору
 
 

Не пойму пишу так

<a href="<?php echo urlencode("Муж_на_час"); ?>" class="services_item">

http://localhost/site/Муж_на_час - переходит по этому адресу, т.е. туда куда надо, но ссылки переписать у меня не получается

RewriteEngine on
RewriteRule ^([а-яА-Я_,]*)$ index.php?page=$1

пишет документ не найден, ну думаю его этот мод реврайт на х**
Делаю так

<a href="<?php echo "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?page=".urlencode("Муж_на_час"); ?>" class="services_item">

Перехожу по ссылке
http://localhost/site/index.php?page=%D0%9C%D1%83%D0%B6_%D0%BD%D0%B0_%D1%87%D0%B0%D1%81
Как эту херню заставить работать, хочу как на википедии, но ни хера не получается, кто скажет почему?

  Ответить  
 
 автор: Trianon   (14.10.2010 в 21:27)   письмо автору
 
   для: Красная_шляпа   (14.10.2010 в 21:16)
 

а site/ в регулярке Пушкин сопоставлять будет?
Или у Вас база от текущего каталога?

  Ответить  
 
 автор: Красная_шляпа   (14.10.2010 в 21:30)   письмо автору
 
   для: Trianon   (14.10.2010 в 21:27)
 

RewriteEngine on
RewriteBase /
RewriteRule ^site/([а-яА-Я_\,]*)/$ site/index.php?page=$1

тоже не работает

  Ответить  
 
 автор: Trianon   (14.10.2010 в 21:32)   письмо автору
 
   для: Красная_шляпа   (14.10.2010 в 21:30)
 

так а почему собственно А-Яа-я
а не %0-9A-F ?

  Ответить  
 
 автор: Красная_шляпа   (14.10.2010 в 21:36)   письмо автору
 
   для: Trianon   (14.10.2010 в 21:32)
 

методом тыка тоже не получается
RewriteEngine on
RewriteRule ^index.html$ index.php [L]

http://localhost/site/index.html пока только так получается

  Ответить  
 
 автор: Красная_шляпа   (14.10.2010 в 21:47)   письмо автору
 
   для: Красная_шляпа   (14.10.2010 в 21:36)
 

а что насчёт этого <a href="<?php echo "http://".$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"]."?page=".urlencode("Муж_на_час"); ?>" class="services_item">?

  Ответить  
 
 автор: Красная_шляпа   (14.10.2010 в 21:53)   письмо автору
 
   для: Красная_шляпа   (14.10.2010 в 21:47)
 

Я не въебу, но почему работает только этот вариант

RewriteEngine on
RewriteRule ^index.html$ index.php [L]
RewriteRule ^Муж_на_час$ index.php?page=Муж_на_час [L]

а так: http://localhost/site/Муж_на_час/ object not found

сделал так, но ёбаный в рот, в ручную ссылки прописывать как-то религия не позволяет
RewriteRule ^Муж_на_час.html$ index.php?page=Муж_на_час [L]

  Ответить  
 
 автор: Trianon   (14.10.2010 в 21:53)   письмо автору
 
   для: Красная_шляпа   (14.10.2010 в 21:47)
 

-

  Ответить  
 
 автор: mihdan   (15.10.2010 в 10:45)   письмо автору
 
   для: Красная_шляпа   (14.10.2010 в 21:36)
 

1. Для начала все должно быть в UTF-8 иначе добра вам не видать.
2. Если хотите полной кроссбраузерности - кодируйте ссылки при помощи rawurlencode()
В регулярке проверяйте как вам и сказал Trianon %0-9A-F

3. Если хотите сделать без rawurlencode(), то в регулярке заверните все запросы на index.php

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]


а уже в нем разбирайте полученную строку

4. Добавьте хлебный крошки

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования