htaccess url masking

时间:2011-08-18 13:26:01

标签: .htaccess url masking

嘿,我和htaccess一起唠叨。 在我的网站(mysite.com)上,我获得了一个链接,指向并将变量发送到安全网站上的页面(othersite.com/somepage.php?urlink='www.mysite.com')。

如何编辑我的htaccess文件,将othersite.com/somepage.php?urlink='www.mysite.com'重写为urlink所具有的价值。

我的htaccess中有这个

Options +FollowSymlinks<br>
Options All -Indexes<br>
Options Indexes Includes FollowSymLinks ExecCGI
RewriteEngine on
RewriteRule ^&urlink=(.*) http://$1 [P]

2 个答案:

答案 0 :(得分:-1)

好奇。认为它不会那样工作;如果您在其他服务器上请求页面,您自己的htaccess将无法为您提供解决方案。 (如果您自己访问/拥有othersite.com,他们的htaccess可以这样做。)

相反,我会使用HTTP_HEADER编写一个小的PHP文件重定向到otherside.com。 因此,您可以告诉您的htaccess隐藏您的php-Url。

我是否以正确的方式理解您的问题?

<?php
$myInputURL = $my_POSTURL;
$myOtherSite = "http://www.otherside.com?urllink=";
$myURL = $myOtherSite . $myInputURL;
header("Location: ".$myURL);
?>  

答案 1 :(得分:-1)

RewriteRule不能直接使用查询字符串。

例如,如果网址为http://www.example.com/kitten.php?say=meow,则RewriteRule只能匹配kitten.php部分。其他所有内容都可以通过RewriteCond进行匹配,例如:RewriteCond %{QUERY_STRING} ^urlink=(.*)

请参阅文档:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond


在你的情况下它可能是这样的(对不起,我不知道你到底想要实现什么,因此我只是编辑你现有的规则):

Options Indexes Includes FollowSymLinks ExecCGI
RewriteEngine on

RewriteCond %{QUERY_STRING} ^urlink=(.+)$
RewriteRule ^somepage\.php$ http://%1 [P]