在mod-rewrite中传递和URL作为参数

时间:2010-08-14 00:17:32

标签: php regex apache mod-rewrite

我正在尝试将URL作为mod-rewrite中的参数传递。我想我的正则表达式存在问题。这是我的.htaccess:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule **^go/((http:\/\/)+[A-Za-z0-9\-]+[\.A-Za-z])/?$** feedmini.php?url=$1 [L]
</IfModule>

我要传递的网址类似于 http://www.aaaa.com/aaa/?q=v ,但是当我尝试在go / http://www.aaaa.com/aaa/?q=v上尝试访问该网址时我得到一个404错误页面。我也试过了**^go/([A-Za-z0-9\-\/:]+[\.A-Za-z]+)/?$**但是我传递的URL是这样的:http:/www.aaaa.com/aaa/(在'http:'之后观察singel'/');

任何想法?

提前致谢 / ALE

1 个答案:

答案 0 :(得分:1)

你的第一个问题(在你的第一个代码块中)是你的正则表达式模式与URL不匹配,因为它只匹配以http://开头的字符串,然后只包含字母或短划线,以字母结尾单一的续站或信件。也许这只是一个拼写错误,那里应该有一个量词,但即使这样也不会匹配很大的百分比或URL。

这看起来有点奇怪,但试试这个......

RewriteRule ^go/http:/(.*)/?$ feedmini.php?url=http://$1 [R=302,L]