Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Некорретно работет роутер на htaccess |
Автор: Jasmine 4.2.2011, 14:46 |
Доброго времени суток У меня возникла непонятная ситуация с htaccess присуствует условие типа RewriteRule ^(.*)/(.*)/(.*)\.html$ /index.php?page=$1&data_index=$2&data_id=$3 [L] в php передаются переменные, например URL site.ru/qq/ww/ee.html => page = qq data_index = ww data_id = ee в принципе все отлично работает, но иногда в переменной page передается странное значение "redirect: index.php" вместо соответствующего значения например site.ru/announce/ww/ee.html => page = redirect:index.php data_index = ww data_id = ee примечательно что на сервере существует файл announce.php если параметр изменить, например site.ru/announcessss/ww/ee.html то все отрабатывает корректно Возможно проблемы в настройке apache, потому что на другом компьютере (у меня нет конфигов с того компа) все работает корректно. сожержание htaccess - Options +FollowSymlinks RewriteEngine on RewriteBase / ErrorDocument 404 /404.html RewriteRule ^(.*)/(.*)/(.*)\.html$ /index.php?page=$1&data_index=$2&data_id=$3 [L] ...... Собственно вопрос - как получить корректную переменную? Заранее благодарю за помощь |
Автор: skyboy 4.2.2011, 14:55 |
поищи по коду РНР файлов "header(" можно убедиться, посмотрев rewrite.log, но мне вот уже сейчас думается, что замена происходит корректно, а потом уже PHP скрипт какой-нибудь делает редирект на некорректно сформированный адрес. |
Автор: Jasmine 4.2.2011, 14:58 |
Я тоже так решила поначалу, но я вывожу переменные в первой строке index.php, еще никто ничего никуда не успел отредиректить . |
Автор: Jasmine 5.2.2011, 21:18 |
Неужели никто не сталкивался? |
Автор: vasac 6.2.2011, 17:28 |
Перенаправьте запрос просто на index.php без всяких GET-параметров. Возьмите в нём URL из $_SERVER['REQUEST_URI'], поделите на компоненты и спокойно разберитесь с ними внутри сценария, не вынося себе мозг выкрутасами мод-рерайта. |
Автор: Jasmine 7.2.2011, 01:12 |
Попробовала, та же история если в адресной строке набрать просто буквы - $_SERVER['REQUEST_URI'] - отображается, если $page - реальное значение - echo вообще ничего не выводит Взяла классический вариант - RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php [L,QSA] |