Htaccess Querystring rewrite

2019-03-01 16:47发布

I have URLs like /?test that I want to rewrite to /page.php?page=test

I tried like this but for some reason it doesn't work.

RewriteRule ^\?([a-z0-9\-\+]{3,20})/?$ /page.php?page=$1 [NC,QSA]

What am I doing wrong?

1条回答
老娘就宠你
2楼-- · 2019-03-01 17:20

The query string can only be tested with the RewriteCond directive. The RewriteRule pattern is only tested against the URL path (in .htaccess files the URL path without the per-directory prefix).

So try this:

RewriteCond %{QUERY_STRING} ^[a-z0-9-+]{3,20}$ [NC]
RewriteRule ^$ /page.php?page=%0 [QSA]
查看更多
登录 后发表回答