2016-01-01 2 views
0

У меня есть каталог «Пользователи» с 3 файлами внутринавигации проблема внутри директории с правилом перезаписи

/index.php 
/activity.php 
/settings.php 

Мой переписывают Правило говорит

RewriteRule ^user/([0-9a-zA-Z_]+)/ users/index.php?id=$1 [NC,L] 

Теперь я хочу, чтобы перейти к

http://localhost/user/userid/logs 

Итак, я попробовал

RewriteRule ^user/([0-9a-zA-Z_]+)/logs users/activity.php [NC,L] 

Но его не работает, он загружает содержимое индексного файла

ответ

2

Я собираюсь предположить, что ваше второе правило перезаписи выполняется после первого. Флаг L заставляет переписать, чтобы перестать смотреть дополнительные правила после его соответствия. В основном, первая строка:

RewriteRule ^user/([0-9a-zA-Z_]+)/ users/index.php?id=$1 [NC,L] 

Соответствие, а затем игнорирование остальных. Вы могли бы попытаться поместить другую линию над ним так:

RewriteRule ^user/([0-9a-zA-Z_]+)/logs users/activity.php [NC,L] 
RewriteRule ^user/([0-9a-zA-Z_]+)/ users/index.php?id=$1 [NC,L] 

Вы также можете снять флаг L, но я не знаю, что остальная часть вашего HTAccess, как, так что другие правила могут заменяют.

Или вы могли бы попробовать это:

RewriteRule ^user/([0-9a-zA-Z_]+)/?$ users/index.php?id=$1 [NC,L] 
RewriteRule ^user/([0-9a-zA-Z_]+)/logs/?$ users/activity.php [NC,L] 
+2

Этот инструмент может помочь также: http://martinmelin.se/rewrite-rule-tester/ – pyb

+0

Это довольно круто. –

+0

Первый пример работал, и я понял, что вызывает проблему. Второй пример contatin? $ Что это значит? –

Смежные вопросы