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 :: RewriteRule в .htaccess

 PHP.SU

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


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

> Описание: Человеко-понятные урлы
andrweb
Отправлено: 10 Марта, 2011 - 17:13:08
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


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




Привет всем!
подскажите, кто-нибудь сталкивался с передачей GET-параметров в .htaccess?
Дело в том, что немогу передать два параметра, содержащих строки

url: blog/elektronika_i_elektrooborud ovanie/gps-ustroystva_dlya_navig atsii.html

код: ^blog/([a-z_A-Z_0-9]+)/([a-z_A-Z_0-9]+).html$ article.php?category=$1&url=$2

Здесь url - "gps-ustroystva_dlya_navigatsii" и category - "elektronika_i_elektrooborudovanie"

Почему числовые значения типа id во втором GET-е принимается, а строковые нет?


-----
Горбатого могила исправит.
 
 Top
Stierus Супермодератор
Отправлено: 10 Марта, 2011 - 17:31:44
Post Id



Рекордсмен по количеству сообщений за 7 дней


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


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




потому что там символ "-", который вы не указали в правиле.

Замечание: символ "_" внутри квадратных скобок надо указать 1 раз, а символ "-" надо указать в самом начале квадратных скобок
(Добавление)
Ну и пробел у вас тоже не указан в правиле (если это не опечатка "vig at") ...
 
My status
 Top
andrweb
Отправлено: 11 Марта, 2011 - 08:42:26
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


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




Вот так? RewriteRule ^blog/([-_A-Za-z0-9]+)/([-_A-Za-z0-9]+).html$ article.php?category=$1&id=$2

А как указать символ "-"?
Stierus пишет:
потому что там символ "-", который вы не указали в правиле.

(Добавление)
Ок все норм. Спасибо Stierus, как всегда выручил!!! Радость
(Добавление)
А как сделать так, чтобы у меня учитывались любые символы в url-е? Такие как "," "." "!" и "?" и т.д.?


-----
Горбатого могила исправит.
 
 Top
Stierus Супермодератор
Отправлено: 11 Марта, 2011 - 11:43:04
Post Id



Рекордсмен по количеству сообщений за 7 дней


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


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




попробуйте [-_A-Za-z0-9]+ заменить на .*?
 
My status
 Top
Andruxa
Отправлено: 11 Марта, 2011 - 21:56:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010  


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




Есть тоже вопросик по ЧПУ, спрошу тут, что бы не плодить темы.
Такая ситуация.
Есть файл .htaccess:
CODE (htmlphp):
скопировать код в буфер обмена
  1. AddDefaultCharset UTF-8
  2. DirectoryIndex index.php
  3. RewriteEngine On
  4. Options +FollowSymlinks
  5. RewriteCond   %{REQUEST_FILENAME}       !-d
  6. RewriteCond   %{REQUEST_FILENAME}       !-f
  7. RewriteRule   ^(.*) index.php?%{QUERY_STRING}


В файле index.php прописал следующее:
PHP:
скопировать код в буфер обмена
  1. include("header.php");
  2. $URI = $_SERVER['REQUEST_URI'];
  3. $exp=explode("/", $URI);
  4. if($exp[2]==""){
  5. include("news.php");
  6. }
  7. else{
  8. include("".$exp[2].".php");
  9. }
  10. include("footer.php");

( в корне лежит фал login.php)
Впринципе все работает, но есть проблема.
Когда url вида /site/login - все работает нормально, (ссылки на картинки site/images/img_07.gif - все ОК),
но когда такого вида /site/login/delete почему то графика не отображается, а ссылки на картинки имеют вид : site/login/images/img_07.gif.
Почему это происходит ?
 
 Top
JustUserR
Отправлено: 12 Марта, 2011 - 11:59:25
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




andrweb пишет:
А как сделать так, чтобы у меня учитывались любые символы в url-е? Такие как "," "." "!" и "?" и т.д.?
Для осуществления решения предполагаемой задачи необходимо использование средств управления системой генерации оригинального URL-адреса, позволяющих обеспечить предшествующий анализ ассоциированного информационного поля и произвести дифференциацию элементных уровней трактования для вложенных объектов, в соответствии с предполагаемыми параметрами их интерполяции в целевую синтаксическую конструкцию, осуществляющими разделение семантических уровней трактования для дифферентных объектов после окончания процесса их разделения; современные браузеры позволяют осуществлять автоматизированный эвристический анализ предполагаемой конструкции URL-адреса и обеспечивать приведение элементов с неоднозначным уровне трактования в кодированную форму, однако для осуществлении их сопоставления в серверном механизме анализа URL-адресов, требуется включение целевых строковых констант для сопоставляемых информационных полей в соответственном уровне элементного трактования и кодовой таблице


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
andrweb
Отправлено: 13 Марта, 2011 - 21:54:21
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: РОССИЯ Ростов-на-Дону


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




JustUserR пишет:
Для осуществления решения предполагаемой задачи ...
В общем спец символы никак нельзя использовать в урл... Такой как "?"
(Добавление)
Stierus пишет:
попробуйте [-_A-Za-z0-9]+ заменить на .*?
Я так и сделал - все помогло, но спец символ "?" пришлось исключить...
(Добавление)
Andruxa пишет:

Впринципе все работает, но есть проблема.
Когда url вида /site/login - все работает нормально, (ссылки на картинки site/images/img_07.gif - все ОК),
но когда такого вида /site/login/delete почему то графика не отображается, а ссылки на картинки имеют вид : site/login/images/img_07.gif.
Почему это происходит ?


Попробуйте конкретные папки задавать в .htaccess и производить проверку. И еще, иногда все урлы надо начинать с "/", что исключить возможности типа http://site/file/site/login


-----
Горбатого могила исправит.
 
 Top
JustUserR
Отправлено: 14 Марта, 2011 - 12:59:33
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




andrweb пишет:
В общем спец символы никак нельзя использовать в урл... Такой как "?"
При осуществлении формирования конечного информационного поля, ассоциированного с целевым URL-адресом web-ресурса, его значение во вложенном элементном уровне трактования может обеспечивать включения управляющих и ограничивающих элементов, при условии их семантического трактования как соответствующих объектов синтаксической конструкции, в то время как собственные хранимые информационные поля из вложенного уровня элементного трактования, не могут осуществлять хранение указанных элементов в оригинальном виде, относительно проводимой строковой интерполяционной операции


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB