Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2012, 13:53   #1
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию mod_rewrite чпу - составить правило

Приветствую!
Собственно вот такая задача: есть файл test.php, ему могут передаваться один, два или три параметра. Нужно составить RewriteRule таким образом, что бы он принимал любое кол-во параметров через /, и потом уже их обрабатывал(те site.ru/a/b/c). Пробовал сделать вот так, но понял что это бессмысленно и не совсем корректно работает(с чпу столкнулся впервые) и вконце обязательно надо ставить /:
PHP код:
RewriteRule ^(.*)/(.*)/$ test/test.php?a=$1&b=$2
RewriteRule 
^(.*)/$ test/test.php?a=$
если делать так как я показал, то при передаче одного параметра работает корректно, а вот при передаче двух, берёт кусок из урла(test/test.php).
Собственно вопрос: как сделать что бы скрипту можно было передать любое кол-во параметров, и если их больше чем надо, сайт писал что файл не найден(хотя думаю что это правильнее реализовать в скрипте), и соответственно нельзя было "погулять" по структуре каталогов.
Заранее спасибо.
______________________________
В добавок ко всему, если сделать как я написал, то если в браузере написать site.ru/111/ не срабатывает код(он срабатывает вот при таком запросе site.ru/?a=1.
PHP код:
<?php if(isset($_GET['a']) && $_GET['a'] !='') {?>
  <script language="javascript">
  $(document).ready(function () {  
      alert(111);
  });
  </script>
  <?php ?>

Последний раз редактировалось frommars; 04.02.2012 в 14:03.
frommars вне форума Ответить с цитированием
Старый 04.02.2012, 16:11   #2
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

тему можно закрыть - проблему решил вот так
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9^/]+)/([A-Za-z0-9_^/]+)/$ /index.php?mod=$1&action=$2 [QSA,L]
RewriteRule ^([A-Za-z0-9^/]+)/([A-Za-z0-9_^/]+)/?$ /index.php?mod=$1&action=$2 [QSA,L]
и
Код:
$arrURL=explode('/',$_SERVER['REQUEST_URI']);

Последний раз редактировалось frommars; 04.02.2012 в 16:47.
frommars вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование станков с ЧПУ DeKot Свободное общение 1 24.12.2010 23:10
ЧПУ и Кирилица joe WordPress и другие CMS 1 25.10.2010 14:36
ЧПУ и изображения Linel PHP 6 24.09.2010 09:07
Mod Rewrite - не могу составить правило MrJenika PHP 13 31.07.2010 20:41
Помогите составить правило (apache,RewriteRule) papa_serg PHP 0 02.01.2009 11:11