2012-03-03 4 views

ответ

1

Вы можете использовать mod_rewrite как перенаправление, как в этом коде:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^(i)=([^&]+)(&|$) [NC] 
RewriteRule ^get\.php$ %1/%2? [L,R=301,NC] 
0

Попробуйте RedirectMatch directive с помощью regular expression. Это зависит от mod_alias, поэтому он, вероятно, всегда включен. Вы можете использовать mod_rewrite для этого, но это может быть излишним. Замена может содержать ссылки в виде $ п:

RedirectMatch 301 ^/get\.php\?i=([0-9]+)$ /i/$1 

Как вы можете себе представить, $1 является ссылкой к тому, что соответствует внутри пары круглых скобок # 1. Вы можете иметь много ссылок:

RedirectMatch 301 ^/get\.php\?i=([0-9]+)&y=([0-9]+)$ /i/$1/$2/ 

Вы можете использовать онлайн regular expression tester разработать свои апачские конфигурации: если я ставлю ^/get\.php\?i=([0-9]+)&y=([0-9]+)$ на входе «RegExp», и /get.php?i=12&y=24 в «Subject строки» вход, затем нажмите кнопку «Показать матч»показывает:

Match at position 0: 
/get.php?i=12&y=24 
12 # first reference available 
24 # second reference available 

Если регэкспы не работают в тестере, они вряд ли будет работать в конфигурации Apache. Сначала вы должны попробовать их в тесте.

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