我在这里寻找一个概念性的起点,或者即使有人能指出我正确的方向。
鉴于某人使用网址" www.website.com/123"进入网站,我如何以编程方式从网址抓取123,在网站内的数据库中查找值,然后重定向他们到不同的URL?
这是我必须使用PHP / Javascript或其他技术吗?
答案 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>
保持心情 - 如果您担心搜索引擎优化,您可能需要提供指向正确页面的链接,而不是自动指导用户。搜索引擎不喜欢自动重定向。
希望有所帮助。