2013-10-05 3 views
2

Помогите оценить - я расширяю свое понимание .htaccess, но у меня настоящие проблемы здесь. Ситуация:.htaccess перенаправить отдельную строку запроса на конкретный URL-адрес

/people.php forwards to /people 

Я хочу направить

/people.php?id=1 to /people/james-doe 
    /people.php?id=32 to /people/lucy-brown 

и так далее -

, но удивительно то, что я получаю:

/people/id=1 

Теперь я уверен, что есть элегантное решение этого - может ли кто-нибудь помочь?

ответ

0

Включить mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} (^|&)id=1(&|$) [NC] 
RewriteRule ^people\.php$ /people/james-doe? [R=301,L,NC] 

RewriteCond %{QUERY_STRING} (^|&)id=32(&|$) [NC] 
RewriteRule ^people\.php$ /people/lucy-brown? [R=301,L,NC] 
+0

Perfect - отлично работает. Если бы я хотел добавить другие переменные в исходную строку, такую ​​как id = & gid = 3 # 69, что лучше всего подходит для обозначения? – amb67

+0

В этом случае вы можете использовать: 'RewriteCond% {QUERY_STRING} (^ | &) id = 1 & gid = [^ &] + (& | $) [NC]' условие – anubhava

+0

Если этот ответ помог вам решить вашу проблему, пожалуйста, рассмотрите обозначая ее как «принятую», поэтому пользователи, сталкивающиеся с подобной проблемой в будущем, смогут легко ее увидеть. – anubhava

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