.htaccess重定向有2个参数

时间:2014-11-16 00:09:42

标签: apache .htaccess url redirect parameters

我正在尝试完成以下重定向。

website.abc/index.php?page=foo // With one parameter
website.abc/foo

website.abc/index.php?page=foo&article=bar / With a second parameter
website.abc/foo/bar

它也必须向后重定向。

如果我输入 website.abc/foo/bar ,则应在内部重定向到 index.php?page = foo& article = bar

我可以使用一个参数来处理它,但是只要我使用第二个参数,网址就像这样,给我404:

website.abc/foo&article=bar.

我尝试过许多不同的方法,但没有任何效果。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

像这样:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/index\.php [NC]
RewriteCond %{QUERY_STRING} \bpage=([^&]+)\b [NC]
RewriteCond %{QUERY_STRING} \barticle=([^&]+)\b [NC]
RewriteRule .* /%1/%2/? [R=302,L]

RewriteCond %{REQUEST_URI} ^/index\.php [NC]
RewriteCond %{QUERY_STRING} \bpage=([^&]+)\b [NC]
RewriteRule .* /%1/? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(?:/([^/]+)/?)?$ index.php?page=$1&article=$2 [L,NC]