我做了一个简单的网址缩短器。我正在尝试让 .htaccess 重写一个看起来像这样的 url,http://chrismepham.com/q4IT612
以便http://chrismepham.com/index.php?code=q4IT612
它可以在将重定向到外部 url 的函数中使用。
这是我正在使用的 .htaccess 代码:
SetEnv TZ Europe/London
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ index.php?code=$1
在我的索引页面的顶部,我有以下内容:
if(isset($_GET['code']) && !empty($_GET['code'])){
$code = $_GET['code'];
redirect($code);
die();
}
这是重定向功能:
function redirect($code){
//test the connection
try{
//connect to the database
$dbh = new PDO("host;dbname=dbname","user", "pass");
//if there is an error catch it here
} catch( PDOException $e ) {
//display the error
echo $e->getMessage();
}
if(code_exists($code)){
$stmt = $dbh->prepare("SELECT url FROM url_shortener WHERE code=?");
$stmt->bindParam(1, $code);
$stmt->execute();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$url = $row['url'];
}
header('Location: ' .$url);
}
}
为什么不重写url?
谢谢