2016-08-19 2 views
1

у меня есть это переписываниеВторой переписывают не делает не выполнится

RewriteCond %{THE_REQUEST} /(?:user_profile)?\?user_id=([^\s&]+)\sHTTP [NC] 
RewriteRule^/%1? [L,R] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ /user_profile?user_id=$1 [L] 

, правильно позволяет мне использовать домен/имя пользователя в качестве URL.

Но когда я добавляю еще одно правило перезаписи, подобное этому, второму не нравится тот, что был выше.

RewriteCond %{THE_REQUEST} /(?:group)?\?group_id=([^\s&]+)\sHTTP [NC] 
RewriteRule^/%1? [L,R] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^group/([^/]+)/?$ /group?group_id=$1 [L] 

Может кто-нибудь помочь мне rewite второй возвращающие как этот домен/группа/имя_группа, сохраняя при этом первый рабочий, как домен/имя пользователя.

ответ

0

У вас есть две проблемы. Первая проблема заключается в том, что вы хотите сохранить префикс group/ при перенаправлении запроса.

RewriteCond %{THE_REQUEST} /(?:group)?\?group_id=([^\s&]+)\sHTTP [NC] 
RewriteRule^/group/%1? [L,R] 

Вторая проблема заключается в том, что после первого прохода перезаписи, переписать /group/groupname в /group?group_id=groupname. Это приведет к совпадению /group с правилом имени пользователя. Вы хотите, чтобы этот префикс не соответствовал:

RewriteCond %{REQUEST_URI} !^/group 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ /user_profile?user_id=$1 [L] 
Смежные вопросы