Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: mod_rewrite: флаг NE  (Прочитано 872 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
mod_rewrite: флаг NE
« : 26 Ноября 2010, 01:20:10 »
Не совсем понял из документации что делает флаг NE :)
Проблема такая: при переписывании URL escape-последовательности заменяются на символы и я не могу передать через mod_rewrite символ "+". Что делать?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #1 : 26 Ноября 2010, 01:49:34 »
noescape передаёт URL так как он был.
А плюс и не сможешь передать _в URL_ ...
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #2 : 26 Ноября 2010, 02:05:38 »
ну без mod_rewrite он прекрасно передается в виде %2B =) а mod_rewrite переписывает ее почему то как "+", а apache в свою очередь передает php пробел вместо плюса

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #3 : 26 Ноября 2010, 02:14:57 »
Где именно? В URL или в параметрах?
Ещё проще приведи полностью пример запроса, я поэкспериментирую.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #4 : 26 Ноября 2010, 02:33:28 »
правило
RewriteRule ^(.*)tags/(.*)(/?)$ $1search.php?tag=$2 [NE]
url http://somehost.com/tags/%2B100500
скрипт в итоге получает " 100500"

url http://somehost.com/search.php?tag=%2B100500
скрипт получает "+100500"

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #5 : 26 Ноября 2010, 02:49:38 »
Первая скобка неправильная (IMHO). Должна быть (.+/)?
Вокруг /? скобки не нужны.
Несловесные теги есть западло.
Смотрю...

Пользователь решил продолжить мысль 26 Ноября 2010, 03:06:16:
LOL
Вот что тебе стоило открыть документацию самому? :)
Первая же опция - то что тебе нужно.

<IfModule rewrite_module>

  RewriteEngine On
  RewriteBase "/"

  RewriteRule "^(.+/)?tags/(.*)/?$" "$1index.php?tag=$2" [QSA,L,B]

</IfModule>

_SERVER['REQUEST_URI']   /tags/?tag=+100500
_SERVER['PHP_SELF']   ?_SERVER['QUERY_STRING']
/index.php?tag=&tag=+100500
array (
  'tag' => ' 100500',
  'PHPSESSID' => 'htvllhp27tcv7q1ptai54o0n64',
)

_SERVER['REQUEST_URI']   /tags/?tag=%2B100500
_SERVER['PHP_SELF']   ?_SERVER['QUERY_STRING']
/index.php?tag=&tag=%2B100500
array (
  'tag' => '+100500',
  'PHPSESSID' => 'htvllhp27tcv7q1ptai54o0n64',
)

_SERVER['REQUEST_URI']   /tags/%2B100500
_SERVER['PHP_SELF']   ?_SERVER['QUERY_STRING']
/index.php?tag=%2b100500
array (
  'tag' => '+100500',
  'PHPSESSID' => 'htvllhp27tcv7q1ptai54o0n64',
)
« Последнее редактирование: 26 Ноября 2010, 03:06:16 от AnrDaemon »
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн MAKAPOH

  • Автор темы
  • Любитель
  • *
  • Сообщений: 74
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #6 : 26 Ноября 2010, 03:12:24 »
так и не понял о какой опции идет речь, причем здесь QSA, а B вообще не нашел в документации :)

UPD: Разобрался, спасибо :)
Читал вот эту документацию :) http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
« Последнее редактирование: 26 Ноября 2010, 03:20:29 от MAKAPOH »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: mod_rewrite: флаг NE
« Ответ #7 : 26 Ноября 2010, 04:15:19 »
А ведь даже на Hardy 2.2 стоит... :) Где твои глаза были?
QSA всегда полезно писать, когда редиректы локальные.
В большинстве случаев параметры запроса - вещь небесполезная.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.016 секунд. Запросов: 19.