我正在尝试完成以下重定向。
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.
我尝试过许多不同的方法,但没有任何效果。
有谁知道怎么做?
答案 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]