Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Некорретно работет роутер на htaccess, некорректная передача переменных в php 
:(
    Опции темы
Jasmine
Дата 4.2.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.3.2008
Где: Украина

Репутация: нет
Всего: нет



Доброго времени суток 
У меня возникла непонятная ситуация с 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] 
...... 

Собственно вопрос - как получить корректную переменную? 
Заранее благодарю за помощь



Это сообщение отредактировал(а) Jasmine - 4.2.2011, 15:00
PM MAIL Skype   Вверх
skyboy
Дата 4.2.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



поищи по коду РНР файлов "header("
можно убедиться, посмотрев rewrite.log, но мне вот уже сейчас думается, что замена происходит корректно, а потом уже PHP скрипт какой-нибудь делает редирект на некорректно сформированный адрес.
PM MAIL   Вверх
Jasmine
Дата 4.2.2011, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.3.2008
Где: Украина

Репутация: нет
Всего: нет



Я тоже так решила поначалу, но я вывожу переменные в первой строке index.php, еще никто ничего никуда не успел отредиректить .
PM MAIL Skype   Вверх
Jasmine
Дата 5.2.2011, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.3.2008
Где: Украина

Репутация: нет
Всего: нет



Неужели никто не сталкивался? 
PM MAIL Skype   Вверх
vasac
Дата 6.2.2011, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Перенаправьте запрос просто на index.php без всяких GET-параметров. Возьмите в нём URL из $_SERVER['REQUEST_URI'], поделите на компоненты и спокойно разберитесь с ними внутри сценария, не вынося себе мозг выкрутасами мод-рерайта.

Это сообщение отредактировал(а) vasac - 6.2.2011, 17:28
PM WWW   Вверх
Jasmine
Дата 7.2.2011, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.3.2008
Где: Украина

Репутация: нет
Всего: нет



Попробовала, та же история
если в адресной строке набрать просто буквы - $_SERVER['REQUEST_URI'] - отображается, если $page - реальное значение - echo вообще ничего не выводит

Взяла классический вариант - 

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [L,QSA]

Это сообщение отредактировал(а) Jasmine - 7.2.2011, 01:13
PM MAIL Skype   Вверх
vasac
Дата 7.2.2011, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 8
Всего: 36



Цитата(Jasmine @  7.2.2011,  01:12 Найти цитируемый пост)
если в адресной строке набрать просто буквы - $_SERVER['REQUEST_URI'] - отображается, если $page - реальное значение - echo вообще ничего не выводит

Извините, не совсем понял.

Я использовал примерно такое, попробуйте, может быть получится:
Код

RewriteEngine on

# Список папок к которым следует пропускать запросы напрямую

RewriteCond %{REQUEST_URI} ^/(i|css|js)/.*

RewriteRule . - [L]

# Аналогичный список файлов

RewriteCond %{REQUEST_URI} ^/(robots.txt|favicon.ico|sitemap.xml)$

RewriteRule . - [L]

# Остальное считается запросом страницы и перехватывается

RewriteRule (.*) index.php [L]

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0998 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.