我正在开发一个URL缩短脚本。
我的脚本会生成http://127.0.0.1:1337/urlshortener/v5tjp
等链接。
v5tjp
是一个由脚本生成的随机值。
我的脚本的逻辑是我输入一个URL,然后PHP接受它,生成一个随机值(长度也取自SQL数据库),然后在数据库中插入长URL和短URL。
我被困住的地方:我需要创建一个.htaccess文件,将访问者重定向到redirect.php,我在那里有重定向脚本。
这是redirect.php文件:
<?php
include ('connect.php');
$decode = mysql_real_escape_string($_GET['decode']);
$sql = 'SELECT * FROM urls WHERE short_code="$decode"';
$result = mysql_query($sql);
if (isset($_GET['url_token'])){
$urlId=$_GET['url_token'];
$query = "SELECT * FROM urls WHERE short_code=".$urlId." LIMIT 1";
$redirect = mysql_query($query);
if(mysql_num_rows($redirect)) {
$row = mysql_fetch_assoc($redirect);
$url = $row['long_url'];
header('Location: http://'.$url);
}
echo 'Bad URL!';
exit();
}
while($row = mysql_fetch_array($result))
{
$res=$row['long_url'];
header("location:".$res);
}
这是我制作的.htaccess文件:
RewriteEngine On
RewriteRle ^$ index.php [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteRule ^(.*)$ redirect.php?url_token=$1 [L]
但由于某种原因它不起作用。我正在用XAMPP运行我的脚本。
答案 0 :(得分:0)
RewriteRule ^$ index.php [L]
你错过了'你'。
答案 1 :(得分:0)
试试这段代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteRle ^$ /index.php [L]
RewriteCond %(REQUEST_FILENAME) !-f
RewriteRule ^urlshortener/(.*)$ /redirect.php?url_token=$1 [L,QSA,NC]