htaccess: как переписать конкретные переменные GET? - PullRequest
0 голосов
/ 07 февраля 2012

Для главного меню у меня есть около 3 заголовков категории Мне нравится их статическая перезапись.

Это код, который я сейчас использую:

RewriteCond %{QUERY_STRING} !dep= [NC]    
RewriteRule ^([0-9a-zA-Z-]+)/?$ index.php?dep=$1 [NC,L,QSA]   

www.hello.com / car / даст // $ _ GET var //? Dep = car

просто, как бы я позволил: www.hello.com/car/ford/
let 'return'? dep = car & id = ford

Теперь позвольте мне сказать, что я знаю 3 параметра «dep», которые я использую. Как ты мог написать:

If www.hello.com/? == car || boat || train  /  
rewrite to ?dep=  
else
rewrite to ?id= 

/*
In this example giving www.hello.com/ford/  
would return id=ford     
but, www.hello.com/boat/  
would return dep=boat 
*/

1 Ответ

2 голосов
/ 07 февраля 2012

просто как мне разрешить: www.hello.com/car/ford/ let 'return'? Dep = car & id = ford

Добавить это правило после ваших правил:

RewriteRule ^([0-9a-zA-Z-]+)/([0-9a-zA-Z-]+)/?$ index.php?dep=$1&id=$2 [NC,L,QSA]   

Теперь, допустим, я знаю, какие 3 параметра '? Dep' я использую.Как вы могли бы написать:

Вы должны будете изменить свои условия для этого, потому что вам нужно проверить «id».Тогда правило будет соответствовать "машине", "лодке" или "поезду", а именно:

RewriteCond %{QUERY_STRING} !(id|dep)= [NC]    
RewriteRule ^(car|boat|train)/?$ index.php?dep=$1 [NC,L,QSA]

и добавить второе правило для остальных:

RewriteCond %{QUERY_STRING} !(id|dep)= [NC]    
RewriteRule ^([0-9a-zA-Z-]+)/?$ index.php?id=$1 [NC,L,QSA]
...