0
我试图创建一个重写规则,将做到以下几点:mod_rewrite的以 “http://”,在查询字符串
http://www.example.com/http://other.example.com
→http://www.example.com/index.php?var=http://google.com
这是我目前的规则:
RewriteCond %{REQUEST_URI} ^/(http[s]?\:\/\/|ftp\:\/\/)?(www\.)?[a-zA-Z0-9-\.]+\.(com|org|net|mil|edu|ca|co.uk|com.au|gov|ws|info)$
RewriteRule ^(.*)$ http://www.example.com/index.php?var=$1 [R]
主要生产:
http://www.example.com/http://google.com
→ http://www.example.com/index.php?var=
http:/google.com
无论我怎么努力,我总是得到http:/
出来,而不是http://
。有任何想法吗?
非常好!这正是我所需要的。但现在我有另一个问题... 是否有可能做这个相同的程序没有做[R]。理想情况下,我希望地址栏中的实际地址保持为http://domain.com/http://google.com 我尝试了[L]和[PT]标志未成功。我收到服务器错误。 谢谢! – paperreduction 2009-11-09 01:52:26
@paperreduction:只留下* R *标志,它应该起作用。 – Gumbo 2009-11-09 07:54:37
@Gumbo:谢谢,但我怀疑我有冲突的重定向规则(也做www R301)。因此,关闭[R]仍然导致服务器错误。我会解决它。空洞的路径解释解决了我的许多问题。 – paperreduction 2009-11-09 12:42:23