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
Форумы портала PHP.SU :: Версия для печати :: RewriteRule в .htaccess
Форумы портала PHP.SU » PHP » Программирование на PHP » RewriteRule в .htaccess

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

1. andrweb - 10 Марта, 2011 - 17:13:08 - перейти к сообщению
Привет всем!
подскажите, кто-нибудь сталкивался с передачей 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-е принимается, а строковые нет?
2. Stierus - 10 Марта, 2011 - 17:31:44 - перейти к сообщению
потому что там символ "-", который вы не указали в правиле.

Замечание: символ "_" внутри квадратных скобок надо указать 1 раз, а символ "-" надо указать в самом начале квадратных скобок
(Добавление)
Ну и пробел у вас тоже не указан в правиле (если это не опечатка "vig at") ...
3. andrweb - 11 Марта, 2011 - 08:42:26 - перейти к сообщению
Вот так? RewriteRule ^blog/([-_A-Za-z0-9]+)/([-_A-Za-z0-9]+).html$ article.php?category=$1&id=$2

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

(Добавление)
Ок все норм. Спасибо Stierus, как всегда выручил!!! Радость
(Добавление)
А как сделать так, чтобы у меня учитывались любые символы в url-е? Такие как "," "." "!" и "?" и т.д.?
4. Stierus - 11 Марта, 2011 - 11:43:04 - перейти к сообщению
попробуйте [-_A-Za-z0-9]+ заменить на .*?
5. Andruxa - 11 Марта, 2011 - 21:56:10 - перейти к сообщению
Есть тоже вопросик по ЧПУ, спрошу тут, что бы не плодить темы.
Такая ситуация.
Есть файл .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.
Почему это происходит ?
6. JustUserR - 12 Марта, 2011 - 11:59:25 - перейти к сообщению
andrweb пишет:
А как сделать так, чтобы у меня учитывались любые символы в url-е? Такие как "," "." "!" и "?" и т.д.?
Для осуществления решения предполагаемой задачи необходимо использование средств управления системой генерации оригинального URL-адреса, позволяющих обеспечить предшествующий анализ ассоциированного информационного поля и произвести дифференциацию элементных уровней трактования для вложенных объектов, в соответствии с предполагаемыми параметрами их интерполяции в целевую синтаксическую конструкцию, осуществляющими разделение семантических уровней трактования для дифферентных объектов после окончания процесса их разделения; современные браузеры позволяют осуществлять автоматизированный эвристический анализ предполагаемой конструкции URL-адреса и обеспечивать приведение элементов с неоднозначным уровне трактования в кодированную форму, однако для осуществлении их сопоставления в серверном механизме анализа URL-адресов, требуется включение целевых строковых констант для сопоставляемых информационных полей в соответственном уровне элементного трактования и кодовой таблице
7. andrweb - 13 Марта, 2011 - 21:54:21 - перейти к сообщению
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
8. JustUserR - 14 Марта, 2011 - 12:59:33 - перейти к сообщению
andrweb пишет:
В общем спец символы никак нельзя использовать в урл... Такой как "?"
При осуществлении формирования конечного информационного поля, ассоциированного с целевым URL-адресом web-ресурса, его значение во вложенном элементном уровне трактования может обеспечивать включения управляющих и ограничивающих элементов, при условии их семантического трактования как соответствующих объектов синтаксической конструкции, в то время как собственные хранимые информационные поля из вложенного уровня элементного трактования, не могут осуществлять хранение указанных элементов в оригинальном виде, относительно проводимой строковой интерполяционной операции

 

Powered by ExBB FM 1.0 RC1