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



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

假设有人访问带有 URL "www.website.com/123"的网站,我如何以编程方式从 URL 中获取 123,在网站内的数据库中查找值,然后将他们重定向到不同的 URL?

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

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

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

已知重定向由服务器在 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>

请记住- 如果您担心搜索引擎优化,您可能希望提供指向正确页面的链接,而不是自动定向用户。搜索引擎不喜欢自动重定向。

希望有帮助。

最新更新