Мод переписывает localhost работает нормально, на сервере в PHP QUERY_STRING и $ _GET пусто - PullRequest
0 голосов
/ 14 января 2012

У меня странная проблема.Я разрабатываю свои сайты на localhost и после этого распространяю их на стороне сервера.В большинстве случаев это работает должным образом, но теперь замечает что-то странное и не может понять, в чем проблема.

На сервере все перенаправления RewriteRule, но без ожидаемых запросов.Примерно так работает нормально на локальном хосте, но не на сервере:

RewriteEngine On .... ....

RewriteRule .....

РЕДАКТИРОВАТЬ: Изменены записи дляИз соображений безопасности, извините!

.... ....

Кто-нибудь знает, что происходит?Я что-то пропустил?Почему запросы не проходят через?Это конфигурация сервера?Ничего не могу найти в интернете.

Спасибо за ваши комментарии.

РЕДАКТИРОВАТЬ: РЕШЕНИЕ ниже, второй комментарий.Имеет отношение к тому, что в первую очередь обрабатывает apache

Ответы [ 2 ]

1 голос
/ 14 января 2012

@ Erwinus, функциональность "Perdir", которую вы обсуждаете, является стандартной в Apache, но не совсем понятна. Apache проверит, затем откроет и прочитает все существующие .htaccess файлы на пути к имени файла скрипта. (Игнорируя погоню RewriteOptions inherit, которая редко выбирается) он использует самый глубокий файл .htaccess, который он находит, который имеет RewriteEngine On.

Поэтому я бы не согласился с мнением Марио в том, что ИМХО почти невозможно получить правила перезаписи родительских каталогов для вытеснения дочернего набора каталогов - действие по умолчанию Apache - игнорировать родительский. Я объясню более подробно в этой статье блога .

0 голосов
/ 14 января 2012

Эти вещи почти невозможно отладить.Но mod_rewrite предлагает одну функцию, которую вы должны настроить для исследования этого:

RewriteLog /tmp/rewritelog.txt
RewriteLogLevel 2

Директива RewriteLog, однако, не может использоваться из .htaccess.Вы должны объявить это в конфигурации vhost или основного сервера.Если уровень 2 все еще недостаточен, попробуйте 3.

В противном случае я бы просто посоветовал вам попробовать RewriteBase, так как вы, кажется, соответствуете различным уровням каталогов с вашими правилами.Возможно, повторите ваши правила в подкаталогах (streambutler/) еще раз.Apache mod_rewrite является своеобразным и иногда игнорирует их в родительском каталоге.

...