htaccess mod重写更改http:// www到http:/ www

时间:2010-05-14 21:07:18

标签: .htaccess mod-rewrite url-rewriting

我想替换这样的电话:

www.mysite.com/sub/file.php?param1=x&param2=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&param2=$1 [L] 

不幸的是,param2(网址)以http:/www.someurl.com而不是http://www.someurl.com开头(请注意单斜杠)。

知道是什么原因引起的吗?当我以www.mysite.com/sub/file.php?param1=x&param2=http://www.someurl.com格式调用具有相同参数的同一文件时,param2确实显示为OK,因此它必须是具有重写规则的内容。

1 个答案:

答案 0 :(得分:2)

您需要从 THE_REQUEST 中获取值:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /sub/[0-9]+/([^?\ ]+)
RewriteRule ^sub/([0-9]+)/  sub/file.php?param1=$1&param2=%1 [L]