В htaccess, как вы 301 перенаправляете динамические страницы?htaccess 301 перенаправить с помощью динамической страницы?
Например, если бы я хотел правило, которое делало /get.php?i=1234
для перенаправления на /i/1234
и т. Д.?
В htaccess, как вы 301 перенаправляете динамические страницы?htaccess 301 перенаправить с помощью динамической страницы?
Например, если бы я хотел правило, которое делало /get.php?i=1234
для перенаправления на /i/1234
и т. Д.?
Вы можете использовать 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]
Попробуйте 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. Сначала вы должны попробовать их в тесте.