проблема переписывания модов - PullRequest
0 голосов
/ 16 января 2010

Я пытаюсь перенаправить свои страницы, используя URL:

RewriteRule ^(.*)/content/(.*)/?(.*)\.html$ browse.php?s=$1&c=$2&l=$3 [NC,L]

Для 2 параметров он работает нормально, но когда я передаю 3 параметра, он объединяет 2 и третий.

Правильный вывод соответствует следующим (2) параметрам:

Array ( [s] => wallpapers [c] => Global_Celebrities [l] => Nicole1);

Здесь объединены запутанные выходные параметры (3):

Array ( [s] => wallpapers [c] => Global_Celebrities/Kate1 [l] =>);

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 16 января 2010

Проще всего пойти с 2 правилами:

RewriteRule ^(.*)/content/(\w*)\.html$ browse.php?s=$1&c=$2 [NC,L]<br/>
RewriteRule ^(.*)/content/(\w*)/(\w*)\.html$ browse.php?s=$1&c=$2&l=$3 [NC,L]

Обратите внимание, что я использую "\ w" вместо ".", Так что "." не сможет есть "/". Это может работать с. также с \ w.

это безопаснее
1 голос
/ 16 января 2010

Вам нужно использовать более конкретный шаблон. Попробуйте [^/]+ вместо .*:

RewriteRule ^([^/]+)/content/([^/]+)\.html$ browse.php?s=$1&c=$2 [NC,L]
RewriteRule ^([^/]+)/content/([^/]+)/([^/]+)\.html$ browse.php?s=$1&c=$2&l=$3 [NC,L]
...