用htaccess抓取整个url作为变量

时间:2014-03-05 16:46:19

标签: php .htaccess url mod-rewrite

这是一个图像旋转器,我试图通过网址完全管理,以避免必须设置用户登录系统。使用该系统,要从列表中添加和删除的图像的URL作为变量通过url传递。当我输入整个网址时:http://www.url.com/index.php?add=http://www.url2.com/images/image.png它运行正常。当我尝试使用htaccess文件http://www.url.com/add=http://www.url2.com/images/image.png时,我得到403。

适用.htaccess专栏:

RewriteRule ^add\=(.*)/? index.php?add=$1 [QSA]

只要我没有尝试提交整个网址,此htaccess就行了。有任何想法吗?如果这还不够,请告诉我。

- 编辑 -

添加了有关我尝试撤消的网址的更多信息

2 个答案:

答案 0 :(得分:0)

尝试此规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^$
RewriteCond %{THE_REQUEST} /add=(\S+) [NC]
RewriteRule ^ /index.php?add=%1 [QSA,L]

答案 1 :(得分:0)

Ultimater的评论和解决方案:

原因是因为它不是一个有效的URL。路径中不能有两个冒号。您可以将它们放在查询字符串中,但不能放在路径中。 http://localhost/add=http://localhost/是无效的网址。但是,您可以将?置于前面,以便接受冒号。或者简单地省略该方案。 - Ultimater