Почему эта директива mod_rewrite RewriteRule не работает в .htaccess файле?

luser_relay = user@example.com в Вашем main.cf то, что Вы хотите.

Чтобы отключить пользователя, проверяющего и принять все письма, необходимо добавить local_recipient_maps = опция. Документация

3
задан 13 April 2017 в 15:14
3 ответа

просто добавьте это в свой файл .htaccess

Options -MultiViews

у меня была та же проблема несколько часов

я не знаю почему, но она включена по умолчанию в OSX

выдает ошибку, потому что при попытке загрузить category / он находит category.php и перенаправляет все после косой черты в этот файл

6
ответ дан 3 December 2019 в 05:20

У Вас есть доступ к httpd.conf? Раз так добавьте к httpd.conf:

RewriteLog "/tmp/mod_rewrite.log" 
RewriteLogLevel 3

И сообщение, что говорит тот журнал, когда Вы загружаетесь /category/2. Удалите это после того, как Вы получаете информацию, в которой Вы нуждаетесь от него - это очень расточительно из ресурсов сервера.

Править:

Спасибо за журнал. Что-то переписывает URL к: /category.php/13. Какой-либо другой RewriteRules? Вы используете FastCGI? Что, если Вы переименовываете category.php к чему-то еще, как Category.php или display_category.php?

EDIT2:

Так как что-то, кажется, переписывает /category/(.*) кому: /category/$1, и мы не знаем, каково это, почему не делают Вы изменяетесь:

RewriteRule ^category/([^/\.]+)/?$ /category.php?category=$1 [L]

кому:

RewriteRule ^category.php/([^/\.]+)/?$ /category.php?category=$1 [L]

и посмотрите, работает ли это?

1
ответ дан 3 December 2019 в 05:20
  • 1
    Готово. Посмотрите обновленный вопрос. –  morgant 23 October 2009 в 00:43
  • 2
    Никакие другие правила. На самом деле я полностью удалил все кроме RewriteEngine On и RewriteRule ^category/([^/\.]+)/?$ /category.php?category=$1 [L] от .htaccess файл. Переименование category.php к display_category.php и изменение замены к /display_category.php?category=$1 работали, но I' d действительно как он для работы с файлом, все еще названным category.php. –  morgant 23 October 2009 в 00:54
  • 3
    Что-то переписывает запросы на /category/(.*) к /category.php/$1... Вы используете FastCGI PHP? –  Josh 23 October 2009 в 01:05
  • 4
    Изменение RewriteRule для соответствия против category.php также работало. Интересно, ^view/ и ^order/ имеют ту же проблему... I' m, не используя FastCGI PHP, AFAIK, it' s весь основная установка Сервера Leopard. Единственные другие правила mod_rewrite, которые я знаю, применяются, RewriteCond %{REQUEST_METHOD} ^TRACE и затем RewriteRule .* - [F] и that' s верный для всех сайтов. Возможно, один из других модулей Apache (или модуля PHP5) делает это для удобства? –  morgant 23 October 2009 в 01:29
  • 5
    Гм. Хорошо не видя все httpd.conf I' m не верный what' s перезапись запросов к /category.php/$1, но I' m довольный it' s работающий теперь! Я подозреваю, что что-то видит Сценарий PHP с тем базовым именем и переписывает. (That' s, почему я подозревал FastCGI PHP). Сделайте то же переписывает изменение для /view и /order, и Вы должны быть установлены. –  Josh 23 October 2009 в 01:40

Я, вероятно - идиот здесь, но разве который не является ожидаемым поведением? Mod_rewrite изменяет URL, встроенный для нахождения файла, переменные среды, замеченные PHP, обычно не изменяются.

Я думаю, что необходимо проанализировать строку REQUEST_URI для вытаскивания переменной категории.

Mark

0
ответ дан 3 December 2019 в 05:20
  • 1
    $ _GET isn' t переменная среды - it' s суперглобальное, содержащее результат строк запроса. Какой he' s пытающийся сделать должен работать. –  Josh 23 October 2009 в 00:11
  • 2
    Хм, я думал что, потому что RewriteRule ^category/([^/\.]+)/?$ /category.php?category=$1 [L] включал строку замены /category.php?category=$1, что она напрямую заменит URI, даже для внутренних перенаправлений. [ httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule] примечания это " URL полностью заменяется Заменой, и процесс перезаписи продолжается, пока все правила не были применены, или это явно завершается флагом " L; кроме того, если я изменяю флаг на [R,L], он показывает то же поведение и doesn' t перенаправление. –  morgant 23 October 2009 в 00:16
  • 3
    Это должно работать, как Вы первоначально ожидали, хотя флаг [R], не вступающий в силу, необычен. Можно ли включить переписать журнал отладки? –  Josh 23 October 2009 в 00:19
  • 4
    @mfarver Вы корректны, что @mfarver Вы корректны, что [110] проникает как /category/2/ даже после it' s зафиксированный, но вопрос был действительно о переписывании не работающий и так @mfarver Вы корректны, что [110] проникает как [111] даже после it' s зафиксированный, но вопрос был действительно о переписывании не работающий и так [112] проникающий через пробел.GET['category'] проникающий через пробел.SERVER['REQUEST_URI'] проникает как /category/2/ даже после it' s зафиксированный, но вопрос был действительно о переписывании не работающий и так @mfarver Вы корректны, что [110] проникает как [111] даже после it' s зафиксированный, но вопрос был действительно о переписывании не работающий и так [112] проникающий через пробел.GET['category'] проникающий через пробел. –  morgant 23 October 2009 в 03:25

Теги

Похожие вопросы