我想替换这样的电话:
www.mysite.com/sub/file.php?param1=x¶m2=http://www.someurl.com
使用:
www.mysite.com/sub/param1/param2
Param 1是整数Param 2是url
我在htaccess中写了这个重写规则:
RewriteCond %{REQUEST_URI} \/sub\/
RewriteRule sub\/([0-9]+)\/(.*)$ sub\/file.php?param1=$2¶m2=$1 [L]
不幸的是,param2(网址)以http:/www.someurl.com
而不是http://www.someurl.com
开头(请注意单斜杠)。
知道是什么原因引起的吗?当我以www.mysite.com/sub/file.php?param1=x¶m2=http://www.someurl.com
格式调用具有相同参数的同一文件时,param2确实显示为OK,因此它必须是具有重写规则的内容。
答案 0 :(得分:2)
您需要从 THE_REQUEST 中获取值:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /sub/[0-9]+/([^?\ ]+)
RewriteRule ^sub/([0-9]+)/ sub/file.php?param1=$1¶m2=%1 [L]