Правило перезаписи для purl и строк запроса - PullRequest
0 голосов
/ 17 февраля 2012

Что не так с этими правилами?

RewriteEngine на

RewriteCond% {QUERY_STRING}! &? N = [az]?

RewriteCond% {HTTP_HOST} ^ (?: www.) ([Az] +). Myconsultinghouse.com $

RewriteRule ^ / $ /login.php?n=%1 [L, QSA]

RewriteRule ^ ([az] +)? ([^ /] *) $ /$1.php?n=%1 [L, QSA] ИЛИ

RewriteRule ^ ([az] +)? ([^/] ) / ([^ /] ) $ /$1.php?n=%1&et=$2 [L, QSA] ИЛИ

RewriteRule ^ ([az] +)? ([^ /] ) / ([^ /] ) / ([^ /] *) $ /$1.php?n=%1&et=$2&ne=$3 [L, QSA]

Я хочу быть таким:

Если пользователь заходит на страницу - www.NameOfUser.domain.com/(NULL)

Перенаправление для /login.php?n=NameOfUser

Если пользователь заходит на страницу - www.NameOfUser.domain.com/page

Перенаправление для /page.php?n=NameOfUser

Если пользователь заходит на страницу- www.NameOfUser.domain.com/page/group

Перенаправление для /page.php?n=NameOfUser&et=group

Если пользователь заходит на страницу - www.NameOfUser.domain.com/ Главная /группа / событие

Перенаправление для /page.php?n=NameOfUser&et=group&ne=event

Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 17 февраля 2012

Примечание:

  • ? не включено в строку запроса.
  • Conds применяются только к следующему правилу, но не к последующим.
  • Строки запроса недоступны в соответствии с правилом
  • Поскольку у вас нет ведущего / вШаблоны правил, я предполагаю, что это в файле DOCROOT/.htaccess, и в этом случае вы должны установить базу и использовать относительный путь в ваших целях замены

так:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST}             ^www\.([a-z]+)\.myconsultinghouse\.com$
RewriteRule ^                        -                                [E=USER:%1]

RewriteCond %{QUERY_STRING}          \bn=[a-z]*\b                     [OR]
RewriteCond {%ENV:USER}              =""
RewriteRule ^                        -                                [S=4]

RewriteRule ^/$                      login.php?n=%{ENV:USER}          [L,QSA]
RewriteRule ^([a-z]+)/?$             $1.php?n=%{ENV:USER}             [L,QSA]
RewriteRule ^([a-z]+)/(.*?)/?$       $1.php?n=%{ENV:USER}&et=$2       [L,QSA]
RewriteRule ^([a-z]+)/(.*?)/(.*?)/?$ $1.php?n=%{ENV:USER}&et=$2&ne=$3 [L,QSA]

Предполагается, что имя пользователя [a-z]+.Вы также можете рассмотреть \w+, если вы хотите разрешить цифры и _

...