如何根据URL和SQL数据库中的相关值将访问者重定向到特定页面?

时间:2018-06-13 17:35:48

标签: javascript php

我在这里寻找一个概念性的起点,或者即使有人能指出我正确的方向。

鉴于某人使用网址" www.website.com/123"进入网站,我如何以编程方式从网址抓取123,在网站内的数据库中查找值,然后重定向他们到不同的URL?

这是我必须使用PHP / Javascript或其他技术吗?

1 个答案:

答案 0 :(得分:0)

我已经实施了类似于您要求的解决方案。

我的解决方案有两个部分。

已知的重定向由web.config文件中的服务器处理。通过使用已知重定向维护web.config文件,服务器将自动重定向到"更正"页。这需要IIS服务器,但其他服务器技术应该具有类似的功能(请参阅' .htaccess语法')。

web.config语法

<rewriteMaps>
   <rewriteMap name="redirects">
      <add key="/123" value="/new-location" />
   </rewriteMap>
</rewriteMaps>

.htaccess语法

Redirect /index.html http://example.com/newdirectory/

解决方案的另一部分是创建一个自定义404页面,可以访问您的数据库并手动重定向用户。

PHP / mySQL

<?php
   $db = mysqli_connect('YOURHOST','YOURDATABASE','YOURDATBASEPASSWORD','YOURDATABASEUSER');
   $requestedURL = $_SERVER['REQUEST_URI'];
   $sql = "SELECT redirectURL FROM tblurls WHERE requestURL LIKE '%" . $requestedURL . "%'";
   $result = mysqli_query($db,$sql);
   if(mysqli_num_rows($result) == 0) {
      // no matches
   }
   else {
      $row = $result->fetch_assoc();
      echo "<a href='" . $row['redirectURL'] . "'>Click to go here.</a>";
   };
?>

在IIS中,我使用mySQL和PHP设置了自定义404系统。根据您的服务器和编程风格,您需要获取请求的URL,检查数据库的值,最后重定向到相关的值。

JavaScript重定向

<script type='text/javascript'>
   window.location.href = '/newlocation/';
</script>

保持心情 - 如果您担心搜索引擎优化,您可能需要提供指向正确页面的链接,而不是自动指导用户。搜索引擎不喜欢自动重定向。

希望有所帮助。