Помогите с mod_rewrite - PullRequest
       3

Помогите с mod_rewrite

0 голосов
/ 02 августа 2011

Я пытаюсь заставить mod_rewrite работать со следующими URL-адресами:

/events.php?view=details&id=$var
/events.php?view=edit&id=$var

Очевидно, что моя цель - иметь / events / details / $ var и / events/ edit / $ var мои действительные URL, а $ var - уникальный идентификатор.

Мой файл .htaccess

RewriteEngine On

# redirect 301 /events.php http://www.google.com
# If the rule above is active, it does redirect to google.com, 
# so .htaccess is working

RewriteRule ^events/([^/]*)/([^/]*)\$ /events.php?view=$1&id=$2 [L]

В настоящее время, когда я иду/events/details/$var отображает /events.php, но не выбирает передаваемые переменные.

Любая помощь приветствуется!

Обновление: Я удалил .php, упомянутый OverZealous./ events / details / $ var по-прежнему отображает / events.

// From events.php
echo $_REQUEST['view']; //returns nothing

Обновление 2: Я включил журнал mod_rewrite (уровень 5) и получил следующий вывод: (Я удалил IP, дату, мои данные домена)и т. д.)

[sid#7fc6d76f5608][rid#7fc6d79ad908/subreq] (3) [perdir /var/www/webroot/] add path info postfix: /var/www/webroot/events.php -> /var/www/webroot/events.php/details/35
[sid#7fc6d76f5608][rid#7fc6d79ad908/subreq] (3) [perdir /var/www/webroot/] strip per-dir prefix: /var/www/webroot/events.php/details/35 -> events.php/details/35
[sid#7fc6d76f5608][rid#7fc6d79ad908/subreq] (3) [perdir /var/www/webroot/] applying pattern '^events/([^/]*)/([^/]*)$' to uri 'events.php/details/35'
[sid#7fc6d76f5608][rid#7fc6d79ad908/subreq] (1) [perdir /var/www/webroot/] pass through /var/www/webroot/events.php

[sid#7fc6d76f5608][rid#7fc6d79a88e8/initial] (3) [perdir /var/www/webroot/] add path info postfix: /var/www/webroot/events.php -> /var/www/webroot/events.php/details/35
[sid#7fc6d76f5608][rid#7fc6d79a88e8/initial] (3) [perdir /var/www/webroot/] strip per-dir prefix: /var/www/webroot/events.php/details/35 -> events.php/details/35
[sid#7fc6d76f5608][rid#7fc6d79a88e8/initial] (3) [perdir /var/www/webroot/] applying pattern '^events/([^/]*)/([^/]*)$' to uri 'events.php/details/35'
[sid#7fc6d76f5608][rid#7fc6d79a88e8/initial] (1) [perdir /var/www/webroot/] pass through /var/www/webroot/events.php

[sid#7fc6d76f5608][rid#7fc6d7a597c8/subreq] (3) [perdir /var/www/webroot/] add path info postfix: /var/www/webroot/details -> /var/www/webroot/details/35
[sid#7fc6d76f5608][rid#7fc6d7a597c8/subreq] (3) [perdir /var/www/webroot/] strip per-dir prefix: /var/www/webroot/details/35 -> details/35
[sid#7fc6d76f5608][rid#7fc6d7a597c8/subreq] (3) [perdir /var/www/webroot/] applying pattern '^events/([^/]*)/([^/]*)$' to uri 'details/35'
[sid#7fc6d76f5608][rid#7fc6d7a597c8/subreq] (1) [perdir /var/www/webroot/] pass through /var/www/webroot/details

1 Ответ

2 голосов
/ 02 августа 2011

Почему у вас есть \.php в конце? Вы хотите, чтобы URL были /events/details/123.php? Потому что это не тот пример.

Я думаю, вы хотите, чтобы ваше правило переписывания выглядело так:

RewriteEngine On
RewriteRule ^events/([^/]*)/([^/]*)$ /events.php?view=$1&id=$2 [L]
...