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

Форум Apache

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

 

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

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

тема: mod_rewrite: теряется GET-параметр с именем скрипта
 
 автор: Красная_шляпа   (02.11.2011 в 12:20)   письмо автору
 
 

Вот правило:


AddDefaultCharset utf-8
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) index.php?uri=$1 [L]


Когда обращаемся к site.ru/index.htm, то в $_GET лежит array(1) { ["uri"]=> string(9) "index.htm" }. Это хорошо а вот как избавиться от такого к любому скрпиту обращаешься site.ru/index.php/1/2/3 и всё работает, но $_GET пуст, как отключить то(мне такое решительно не нравится)?

  Ответить  
 
 автор: cheops   (02.11.2011 в 13:24)   письмо автору
 
   для: Красная_шляпа   (02.11.2011 в 12:20)
 

Уберите вот эту проверку
RewriteCond %{REQUEST_FILENAME} !-f

  Ответить  
 
 автор: Красная_шляпа   (02.11.2011 в 14:42)   письмо автору
 
   для: cheops   (02.11.2011 в 13:24)
 

нет все равно. тем более я так уже пробовал.

т.е. мне нужно чтобы

/index.php/1/2/3 не обрабатывалось как сейчас(апаче показывал ошибку)

а

/1/2/3 перенаправлялось на /index.php?uri=1/2/3


<?php

Router
::init();
Router::$action404 "page404";
Router::set("home""/"); // главная страница
Router::set("test""/test.htm");
// ...
Router::set("news""/news/archive/{year}/{month}/{day}/", array("year" => "\d+""month" => "\d+""day" => "\d+"));
Router::run();

?>


Зачем это мне просто я написал роутер, а он работает по-этому принципу. Но не о нём просто некрасиво выгдядит

Ещё прикольную фишку придумал с необязательными сегментами пути (т.е. можно получить доступ только по адресам site.ru/news/archive/ || site.ru/news/archive/YYYY/ || site.ru/news/archive/YYYY/MM/ || site.ru/news/archive/YYYY/MM/DD/):

function news_archive($year = null, $month = null, $day = null) {
    var_dump($year, $month, $day);
}

// ...

Router::set("news_archive", "/news/archive/^{year}/^{month}/^{day}/", array("year" => "20\d\d", "month" => "\d\d", "day" => "[1-3]?\d"));


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

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