0

我在共享主机上编写了一个简单的 PHP 脚本,并希望在 .htaccess 文件中实现一些规则,这样每次我的脚本调用时,比如说http://www.google.com/test1它都会得到http:// /www.otherwebsite.com/test1代替。

我以前使用过标准的 URL 重写规则,但不需要这个特定的功能。

谢谢 !

4

2 回答 2

0

.htaccess只能解析到您的 Web 服务器的域名重写传入的 URL。它无法控制传出 URL,因为这些请求直接发送到传出 Web 服务器(在您的示例中为 google.com)。

您可能需要一个脚本解决方案,通过连接到所有外部链接onclick的事件来根据您的需要重定向用户。这是一个使用jQuery的快速概念证明,但也可以使用标准 JavaScript 来完成。

<html>
<head>
 <title>jQuery global redirector</title>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
 </script>
</head>
<body>
 <a href="http://google.com/search?q=jquery">google url would redirect</a><br />
 <a href="http://mysite.com/somepage.php">mysite.com url won't redirect</a>
 <script>
 <!--
   $(function() {
       $("a").click(function(e) {
         var url = e.target.href;
         if(!(url.startsWith("mysite.com") ||
              url.startsWith("http://mysite.com"))) {
            var path = $( '<a />', {href : url} ).prop( 'pathname' );
            window.location.href = "http://otherwebsite.com" + path;
            e.preventDefault();
         }
       });
   });
 //-->
 </script>
</body>
</html>

您可能应该将脚本放在另一个文件中(例如redirect.js),然后有选择地将此脚本包含在需要此类重定向的页面中。并且不要忘记导入jQuery

于 2013-08-19T23:04:15.533 回答
0

如果我正确理解您的问题,您希望将所有 URL 重定向到其他域。

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?yourwebsite\.com$ [NC]
RewriteRule ^ http://www.otherwebsite.com%{REQUEST_URI} [R=301,L]
于 2013-08-19T19:25:34.773 回答