URL Shortner Code在localhost上运行正常,但在网站上运行不正常

时间:2016-12-05 07:21:32

标签: php .htaccess

我制作了一个网址缩短代码,用户将长网址放在文本字段中,当用户点击提交按钮时,它会在数据库中插入长网址,并向用户显示短网址,这在我的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');
  }
 }?>

1 个答案:

答案 0 :(得分:0)

正如聊天室中所讨论的,在部署到生产服务器之前出现了一些意想不到的错误。

尽管识别并修复了上述问题,但仍然会收到404错误,表示重写规则存在问题。

以下规则应该有效。你只需要这个。无需2条规则。

RewriteRule ^([a-zA-Z0-9_-]+)\/?$ index.php?r=$1