多年来一直坚持这种情况并尝试了很多修复但却无法理解它!
我运行一个网站,根据网址生成网页内容。例如:
http://www.mysite.com/http://www.supercheese.com
将从mysite.com和supercheese.com生成mashup内容
我使用的.htaccess(在mysite.com上)是:
<ifModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteRule assets/.* - [L]
RewriteRule ^(.*)$ test.php?url=$1 [NC,L]
</ifModule>
所以基本上第二个URL是在php字符串中传递的。
我的问题是,我需要使用.htaccess
从地址中删除http://E.G。如果有人输入:
http://www.mysite.com/http://www.supercheese.com
我需要它成为:
http://www.mysite.com/www.supercheese.com
非常感谢您提前看一下这个。你们摇滚。
答案 0 :(得分:2)
您只需使用RedirectMatch
http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirectmatch
尝试:
RedirectMatch ^/https?://(.*)$ http://www.mysite.com/$1
编辑:你必须在重写规则之前加上这个
修改:在http
之前添加/
编辑:大卫是对的,看看他的回答并改变你写这些网址的方式
答案 1 :(得分:1)
在我看来,网址方案本质上存在问题。
在网址中使用未编码的冒号:
- 除了跟随http
指定访问协议 - 似乎让服务器认为它正在对http://username:password@hostname/
形式进行身份验证
我知道它没有直接回答这个问题,解决方法是改变url-scheme。 - (