我制作了一个网址缩短代码,用户将长网址放在文本字段中,当用户点击提交按钮时,它会在数据库中插入长网址,并向用户显示短网址,这在我的localhost上完美运行。
但是当我在网上上传时它无法正常工作。虽然数据在线插入数据库并显示短网址,但是当我在地址栏中输入网址时,它会显示The Site Cant Be Reached server DNS address could not be found.
。
我认为这与我的.htaccess文件有关。
这是我的.htaccess文件:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?r=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?r=$1
这是我的index.php文件:
<?php
include 'config.php';
if(isset($_GET['r']) || !empty($_GET['r']))
{
$url_id = $_GET['r'];
$sql = "SELECT long_url FROM url_shortner WHERE url_id = '$url_id'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
if(mysqli_num_rows($result) == 1)
{
$l_url = $row['long_url'];
header('Location:' .$l_url);
}
else
{
header('Location: index2.php');
}
}?>
答案 0 :(得分:0)
正如聊天室中所讨论的,在部署到生产服务器之前出现了一些意想不到的错误。
尽管识别并修复了上述问题,但仍然会收到404错误,表示重写规则存在问题。
以下规则应该有效。你只需要这个。无需2条规则。
RewriteRule ^([a-zA-Z0-9_-]+)\/?$ index.php?r=$1