非常に基本的な URL 短縮 Web サイトを構築しようとしています。このチュートリアルでbasixnickのコーディングのほとんどすべてを使用しました(https://www.youtube.com/watch?v=ZnthmFQKlVYすべての3つの部分)が、問題が発生しています。
www.google.com などの URL を短縮受信ボックスに入力すると、対応する短縮コードが取得されます。次に、たとえば www.mysite.com/xyz123 などの URL をコピーして貼り付けると、単に www.google.com ではなく、www.mysite.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(...)」コードを削除して、「echo "$url";」に置き換えると、長い URL は問題なくエコーされます。したがって、その時点までのすべてが正常に機能します。多分それは「header(...)」行です。どう思いますか?