HTACCESS重定向参数不起作用

时间:2017-10-02 08:24:20

标签: php .htaccess

我需要在我的PHP网站上重写网址,但我不确定语法。

我想重定向:

'some_url?id=1' => 'new_url/1'

当用户输入此内容时:

'new_url/1'

我希望他的后端重定向到:

'some_url?id=1'

更新:我的最后一次尝试:

RewriteRule /site/?id=$1    /site/$1

2 个答案:

答案 0 :(得分:2)

您可以使用:

RewriteEngine on
RewriteBase /

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+some_url\?id=([^\s&]+) [NC]
RewriteRule ^ /new_url/%1? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^new_url/(.+?)/?$ some_url?id=$1 [L,QSA,NC]

答案 1 :(得分:0)

您无法在重写规则中匹配查询字符串。您需要使用重写条件。

()匹配的内容可以在重写规则中使用%n表示法(而不是$n

所以你正在寻找的东西是这样的:

RewriteCond %{QUERY_STRING} id=([0-9]+)
RewriteRule ^some_url($|/) /new_url/%1?

在这里演示:

http://htaccess.mwl.be?share=0e31a7bf-9711-533d-896b-461177c46ca2