2013-12-10 2 views
1

У меня есть правило, которое перенаправляет от http://localhost/username к http://localhost/profile_redirect.php?user=usernameправила с исключениями в HTAccess

Правило, Htaccess для этого

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^\.]+)/?$ $1.php [L] 

# when user name != directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^.]+)/?$ profile_redirect.php?user=$1 [L,QSA] 

# when user name == directory 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^([^.]+)/$ profile_redirect.php?user=$1 [L,QSA] 

Можно ли исключения для этого правила? Например, у меня есть страница с URL-адресом http://localhost/members, поэтому при использовании этого URL-адреса из-за правила .htaccess оно перенаправляется на http://localhost/profile_redirect.php?user=members, что не должно происходить.

У меня есть только 3 таких исключения.

ответ

2

Имейте ваше правило так:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^([^\.]+)/?$ $1.php [L] 

# ignore these paths for further rewriting 
RewriteRule ^(members|exception1|exception2)(/|$) - [NC,L] 

# when user name != directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^.]+)/?$ profile_redirect.php?user=$1 [L,QSA] 

# when user name == directory 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^([^.]+)/$ profile_redirect.php?user=$1 [L,QSA] 
+0

работает как шарм! Еще раз спасибо! –

+0

Добро пожаловать, рад, что все получилось. – anubhava

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