我想要构建一个非常基本的网址缩短网站。我在本教程中使用了几乎所有basixnick的编码(https://www.youtube.com/watch?v=ZnthmFQKlVY全部3部分),但我遇到了问题。.htaccess网址缩写器的重写规则
当您在缩短收件箱(例如www.google.com)中输入网址时,会得到相应的缩短代码。然后,当您复制并粘贴网址时,比如说www.mysite.com/xyz123,它会将您重定向到www.mysite.com/www.google.com,而不是简单地www.google.com。
.htaccess看起来像这样。 RewriteRule有问题吗?
<Files .htaccess>
order allow,deny
</Files>
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(\w+)$ ./load.php?code=$1
编辑质疑:
这里是我的load.php文件:
<?php
$code = $_GET['code'];
require("./connect.php");
$query = mysql_query("SELECT * FROM items WHERE code='$code'");
$numrows = mysql_num_rows($query);
if ($numrows == 1) {
$row = mysql_fetch_assoc($query);
$url = $row['url'];
header("Location: $url");
}
else
echo "No shortened url was found.";
mysql_close();
?>
当我删除了 '头(...)' 代码,并与“回声更换“$网址”;”很长的网址会很好地回应。所以到目前为止,一切正常。也许这是'header(...)'行。你怎么看?
我添加了一个编辑的下半部分我的问题。感谢您的输入。我不认为有人会这么快反应,所以我很感激任何意见。 – user1800951 2013-03-06 02:31:16
我将它改为'header(“Location:http:// $ url”);'它工作!哇。非常感谢。我必须保留它,或者找到一种方法在数据库中的$ url的开头添加“http://”或“https://”(如果用户没有添加它)。谢谢。 – user1800951 2013-03-06 03:11:46