hq22 发表于 2013-05-30 13:58

这样的规则rewrite该如何写?

rencai123456.html?key=网页设计
我想把上面的url rewrite到resume.php?id=123456&key=网页设计
apache2.2中的rewrite规则要怎么写呢?
有时候没有key参数也要能正确重定向,比如rencai123456.html到resume.php?id=123456

RewriteRule ^rencai(+)\.html?key=([.]+)$ resume.php?id=$1&key=$2 这样写返回404错误。

satrun7 发表于 2013-05-30 15:31

本帖最后由 satrun7 于 2013-05-30 15:34 编辑

看错了意思,再修改一下
RewriteCond %{QUERY_STRING} key=(.*)$
RewriteRule ^rencai(+)\.html resume.php?id=$1&key=%1
RewriteRule ^rencai(+)\.html resume.php?id=$1

hq22 发表于 2013-06-01 09:10

回复 3# satrun7

请问RewriteCond %{QUERY_STRING} key=(.*)$ 只对下一条RewriteRule ^rencai(+)\.html resume.php?id=$1&key=%1 有效吗?
我在下面再添加一条 RewriteRule ^job(+)\.html job.php?id=$1&key=%1 就取不到key的值了,必须再写一次RewriteCond %{QUERY_STRING} key=(.*)$

RewriteCond %{QUERY_STRING} key=(.*)$
RewriteRule ^rencai(+)\.html resume.php?id=$1&key=%1
RewriteCond %{QUERY_STRING} key=(.*)$
RewriteRule ^job(+)\.html job.php?id=$1&key=%1


   

satrun7 发表于 2013-05-30 15:20

本帖最后由 satrun7 于 2013-05-30 15:21 编辑


RewriteCond %{QUERY_STRING} ^id=(+)&key=(.*)$
RewriteRule ^rencai(+)\.html resume.php?id=%1&key=%2

hq22 发表于 2013-05-30 16:00

本帖最后由 hq22 于 2013-05-30 16:03 编辑

对了,非常感谢!


   

hq22 发表于 2013-06-02 07:56

查过资料了,的确RewriteCond只针对下一条RewriteRule生效,就像if条件语句
页: [1]
查看完整版本: 这样的规则rewrite该如何写?