Php URL Shortner代码在本地主机上运行正常,但在网站上运行不正常
我已经制作了一个url shortner代码,其中用户将长url放在文本字段中,当用户单击submit按钮时,它会在DB中插入长url并向用户显示短url,这在我的localhost上运行得非常好 但当我把它上传到网上时,它就不起作用了。虽然数据正在联机插入数据库,并显示简短的URL,但当我在地址栏中输入URL时,它显示Php URL Shortner代码在本地主机上运行正常,但在网站上运行不正常,php,.htaccess,Php,.htaccess,我已经制作了一个url shortner代码,其中用户将长url放在文本字段中,当用户单击submit按钮时,它会在DB中插入长url并向用户显示短url,这在我的localhost上运行得非常好 但当我把它上传到网上时,它就不起作用了。虽然数据正在联机插入数据库,并显示简短的URL,但当我在地址栏中输入URL时,它显示无法访问站点,无法找到服务器DNS地址。。 我认为这与我的.htaccess文件有关 这是我的.htaccess文件: RewriteEngine On RewriteRule
无法访问站点,无法找到服务器DNS地址。
。
我认为这与我的.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');
}
}?>
如聊天室中所述,在部署到生产服务器之前,出现了一些意外错误 尽管识别并修复了上述问题,但仍然会出现404错误,这表明重写规则中存在问题 下面的规则应该有效。你只需要这个。不需要两条规则
RewriteRule ^([a-zA-Z0-9_-]+)\/?$ index.php?r=$1
正如聊天室中所讨论的,在部署到生产服务器之前,出现了一些意外错误 尽管识别并修复了上述问题,但仍然会出现404错误,这表明重写规则中存在问题 下面的规则应该有效。你只需要这个。不需要两条规则
RewriteRule ^([a-zA-Z0-9_-]+)\/?$ index.php?r=$1
服务器是否使用Apache,是否启用了mod_rewrite?是,是否启用了@MagnusErikssonBtw。。。您对查询非常开放,应该真正使用而不是连接查询。特别是因为你甚至都没有逃离用户input@MagnusErikssonOk将其更改为“DNS地址找不到”这听起来不像htaccess错误。当您收到该消息时,您在浏览器中看到的URL是什么?既然您正在重定向用户,我想问题出在您缩短的URL的目的地?您试图重定向到哪个URL?服务器是否使用Apache并且是否启用了mod_rewrite?是,它已启用@MagnusErikssonBtw。。。您对查询非常开放,应该真正使用而不是连接查询。特别是因为你甚至都没有逃离用户input@MagnusErikssonOk将其更改为“DNS地址找不到”这听起来不像htaccess错误。当您收到该消息时,您在浏览器中看到的URL是什么?既然您正在重定向用户,我想问题出在您缩短的URL的目的地?您试图重定向到哪个URL?