2015-04-06 4 views
0

У меня есть вопрос о mod_rewrite - я следующий URL:PHP - Mod_rewrite с параметрами

http://website.com/profile/index.php?a=profile&u=username 

Я пытаюсь переписать, что:

http://website.com/profile/user/username 

У меня есть следующие в моей .htaccess файл:

RewriteEngine on 
RewriteRule ^/profile/user/([^/]*)$ /profile/index.php&a=profile&u=$1 [L] 

Хотя, перейдя на переписанный URL-адрес, я не вижу эту страницу. Я просто вижу страницу index.php по умолчанию. Я пытался получать paramters печатью: print_r($_GET);

Который дал мне следующее:

Array ([a] => u [q] => /username) 

Теперь мой вопрос - как я могу переписать первый URL на второй? Видимо, a пуст и u также содержит /

+1

Вы бы попробовать: 'RewriteRule ^/профиль/пользователь/([^ /] *) $ /index.php&a=$1&u=$2 [L]' –

+0

@Testing то 'a' параметр становится' user' - должен быть 'profile', чтобы страница index.php получала правильный файл. – oliverbj

+0

См. Мое редактирование выше .. @oliverbj –

ответ

1
RewriteEngine on 
RewriteRule ^profile/user/([^/]*)$ index.php?a=profile&u=$1 [L] 

Для URL: localhost/profile/user/test - print_r($_GET) возврата:

Array ([a] => profile [u] => test) 
-2

Mode_rewrite

попробовать это

RewriteCond %{QUERY_STRING}  ^$    [OR] 
RewriteCond %{QUERY_STRING}  ^query=(.*)$ [NC] 
RewriteRule ^/old-search$  /search/%1  [NC,L,R=301] 

ИЛИ

RewriteCond %{QUERY_STRING}  ^view=tags$  [NC] 
RewriteRule ^/blog$    /profile/users/  [NC,L,R=301] 

RewriteCond %{QUERY_STRING}  ^view=posts$ [NC] 
RewriteRule ^/blog$    /profile/   [NC,L,R=301] 


RewriteRule ^/profile$ /profile/%1 [NC,L,R=301] 
+0

Вы действительно это выполнили бы требования OP? –

+0

@ Aelmasry Что такое «старый поиск» и «блог»? – oliverbj

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