mod_rewrite 'добавить пост-информацию о пути:' - PullRequest
4 голосов
/ 13 января 2009

Почему мой mod_rewrite делает это?

add path info postfix: /home/mobelluk/public_html/about.php -> /home/mobelluk/public_html/about.php/

, что приводит к нежелательному завершающему наклону на ВСЕ.

Я отключил все свои правила .htaccess, чтобы они вышли из уравнения.

Ответы [ 4 ]

19 голосов
/ 02 апреля 2011

очевидно, что в некоторых случаях была проблема с повторным добавлением части post-fix для mod_rewrite https://issues.apache.org/bugzilla/show_bug.cgi?id=38642

Проблема:

Если несколько RewriteRules в файле .htaccess совпадают, нежелательные копии PATH_INFO могут накапливаться в конце URI.

Если вы используете Apache 2.2.12 или более позднюю версию, вы можете использовать флаг DPI, чтобы предотвратить это. http://httpd.apache.org/docs/2.2/rewrite/flags.html

2 голосов
/ 14 января 2009

Возможно ли, что новый сервер загружен mod_dir , с DirectorySlash On, где старый не сделал, и это приводит к этой проблеме?

(Обратите внимание, что DirectorySlash On является значением по умолчанию, если загружено mod_dir и его ничто не переопределяет)

1 голос
/ 08 мая 2018

При поиске «добавить постфиксный информационный постфикс», этот вопрос возникает первым, и, хотя в конечном итоге он решил мою проблему, мне потребовалось почти 2 часа, чтобы понять, что происходит. При работе над сайтом мне нужно было это переписать:

/resources/band/ -> resources.html?section=band

В комплекте с этим mod_rewrite:

RewriteRule ^resources/(.*)/$ resources.html?section=$1 [L]

Изменение этого значения на [DPI] ничего не дало ... Код на моей странице resources.html был точно вызван на 100%, но аргумент section = band не был ему отправлен.

Получите это ... в случае, если документация Apache невозможна для чтения, проблема с Multiviews. Когда браузер видит, что множественные просмотры на сервере, видит / resources / band / и говорит: «О, я такой умный, я знаю, что это значит!» и перенаправляет:

/resources/band/ -> /resources.html/band/

Правдивая история! Я изменил + Multiviews на -Multiviews на виртуальном хосте - проблема мгновенно решена.

1 голос
/ 25 июля 2017

Я решил эту проблему, отключив MultiViews в конфигурации параметров моего виртуального хоста. Я переписывал что-то похожее на ниже:

Желаемая перезапись:

/dir/ -> /dir.html

Актуальные переводы:

/dir/ -> /dir.html (MultiViews)
/dir.html -> /dir.html/ (mod_rewrite: 404, didn't exist)

Отключение MultiViews не позволило выполнить первоначальный перевод. Возможно, я бы скорректировал правило перезаписи, чтобы компенсировать это, но я все равно не использовал MultiViews для чего-либо еще.

Следующий пост предупредил меня об этой проблеме: https://velenux.wordpress.com/2012/07/17/apache-mod_rewrite-multiple-add-path-info-postfix/#comment-1476

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...