-1

我正在研究 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 运行我的脚本。

4

2 回答 2

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]
于 2013-07-27T14:02:37.220 回答
0
RewriteRule ^$ index.php [L]

你错过了一个“你”。

于 2013-07-27T13:45:59.307 回答