Проблема с Apache 2 mod_rewrite - PullRequest
       7

Проблема с Apache 2 mod_rewrite

0 голосов
/ 02 октября 2010
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^browse/videos/(.*)/(.*)/(.*)/(.*) /videos.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^videos/(.*)/(.*) /playvideo.php?videoid=$1&title=$2
</IfModule>

URL-адрестакже идет в videos.php, чтобы не playvideo.php

Почему?

Ответы [ 3 ]

0 голосов
/ 02 октября 2010

Это может быть вызвано MultiViews . Попробуйте отключить его с помощью:

Options -MultiViews

Кроме того, вы должны использовать более конкретный шаблон, чем .*, например [^/]+:

RewriteRule ^browse/videos/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ /videos.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^videos/([^/]+)/([^/]+)$ /playvideo.php?videoid=$1&title=$2
0 голосов
/ 02 октября 2010

Это работает для меня. Чтобы выяснить, почему это не работает для вас, вы должны включить ведение журнала mod_rewrite:

RewriteLogLevel 9
RewriteLog logs/rewrite.log

Тогда вы должны попытаться понять, что там написано. А если вы этого не понимаете, опубликуйте здесь, и мы постараемся объяснить это.

0 голосов
/ 02 октября 2010

Не знаю, почему это происходит с вами, но в любом случае вы должны использовать что-то вроде этого.

RewriteRule ^browse/videos/(.+)/(.+)/(.+)/(.+) /videos.php?sortby=$1&filter=$2&page=$3&title=$4 [L]
RewriteRule ^videos/(.+)/(.+) /playvideo.php?videoid=$1&title=$2 [L]
...