Мод перезаписать с 2 аналогичными - PullRequest
1 голос
/ 02 декабря 2011

поэтому я хочу 2 разных правила перезаписи.

Первый:

http://mydomain.com/affiliate/533/1 -> http://mydomain.com/affiliate/index.php?member=533&campaign=1

Второй:

http://mydomain.com/affiliate/533/2/1 -> http://mydomain.com/templates/2/step1.php?member=533

Следующий .htaccess выдает 500 Внутренняя ошибка сервера.Что я делаю не так?

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^affiliate/([0-9]+)/([0-9]+) affiliate/index.php?member=$1&campaign=$2 [NC]
RewriteRule ^affiliate/([0-9]+)/([0-9]+)/step([0-9])+) templates/$2/step$3.php?member=$1 [NC]

Ответы [ 3 ]

1 голос
/ 03 декабря 2011

Только что проверил ваш пример с чистой установкой сервера.

Пока я не использую Options +FollowSymlinks в .htaccess, он отлично работает только с AllowOverride FileInfo.

Когдаиспользуя Options +FollowSymlinks в .htaccess мне нужно AllowOverride Options FileInfo в моей записи <Directory >.

Так что, похоже, это не ошибка.

0 голосов
/ 03 декабря 2011

Вы только что забыли скобки, которые, в свою очередь, когда Apache пытается выполнить последнее регулярное выражение, генерирует ошибку, то есть внутреннюю ошибку, которая выдает 500. Итак, вот версия, которая должна работать:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^affiliate/([0-9]+)/([0-9]+) affiliate/index.php?member=$1&campaign=$2 [NC]
RewriteRule ^affiliate/([0-9]+)/([0-9]+)/step(([0-9])+) templates/$2/step$3.php?member=$1 [NC]
0 голосов
/ 03 декабря 2011

Я только что проверил вашу конфигурацию, и мой error.log сказал мне: «RewriteEngine здесь не разрешен».

После добавления «AllowOverride All» в этот тестовый каталог ошибка исчезла.Однако в руководстве Apache по https://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule сказано:

Чтобы включить механизм перезаписи в этом контексте, необходимо включить «RewriteEngine On» и «Options FollowSymLinks» должны быть включены.Если ваш администратор отключил переопределение FollowSymLinks для каталога пользователя, вы не можете использовать механизм перезаписи.Это ограничение требуется по соображениям безопасности.

Таким образом, правильным способом было бы установить и настроить параметр FollowSymLinks там.

Alex.

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