Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URL Shortner代码在本地主机上运行正常,但在网站上运行不正常_Php_.htaccess - Fatal编程技术网

Php URL Shortner代码在本地主机上运行正常,但在网站上运行不正常

Php URL Shortner代码在本地主机上运行正常,但在网站上运行不正常,php,.htaccess,Php,.htaccess,我已经制作了一个url shortner代码,其中用户将长url放在文本字段中,当用户单击submit按钮时,它会在DB中插入长url并向用户显示短url,这在我的localhost上运行得非常好 但当我把它上传到网上时,它就不起作用了。虽然数据正在联机插入数据库,并显示简短的URL,但当我在地址栏中输入URL时,它显示无法访问站点,无法找到服务器DNS地址。。 我认为这与我的.htaccess文件有关 这是我的.htaccess文件: RewriteEngine On RewriteRule

我已经制作了一个url shortner代码,其中用户将长url放在文本字段中,当用户单击submit按钮时,它会在DB中插入长url并向用户显示短url,这在我的localhost上运行得非常好

但当我把它上传到网上时,它就不起作用了。虽然数据正在联机插入数据库,并显示简短的URL,但当我在地址栏中输入URL时,它显示
无法访问站点,无法找到服务器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?