2016-12-05 11 views
1

私は、ユーザーがテキストフィールドに長いURLを入れて、送信ボタンをクリックするとDBに長いURLを挿入してショートを表示するURLショートナーコードを作成しました私のlocalhost上で完璧に動作しているユーザへのURL。URL Shortner Codeはローカルホストでは問題なく動作していますが、ウェブサイトでは動作しません

しかし、私はそれをオンラインでアップロードしても動作しません。データはDBをオンラインで挿入していますが、ショートURLが表示されますが、アドレスバーにURLを入力するとThe Site Cant Be Reached server DNS address could not be found.と表示されます。 私の.htaccessファイルに関連していると思います。これは私のindex.phpファイルである

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?r=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?r=$1 

これは私の.htaccessファイルであるチャットルームで議論したように

<?php 
include 'config.php'; 
if(isset($_GET['r']) || !empty($_GET['r'])) 
{ 
$url_id = $_GET['r']; 

$sql = "SELECT long_url FROM url_shortner WHERE url_id = '$url_id'"; 
    $result = mysqli_query($con,$sql); 
$row = mysqli_fetch_array($result,MYSQLI_ASSOC); 

if(mysqli_num_rows($result) == 1) 
    { 
$l_url = $row['long_url']; 
    header('Location:' .$l_url); 
    } 
else 
    { 
    header('Location: index2.php'); 
    } 
}?> 
+2

サーバーはApacheを使用していて、mod_rewriteが有効になっていますか? –

+0

はい有効な@MagnusEriksson –

+0

Btw ...あなたは[SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)を広く利用していますので、[Prepared Statements ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)をクリックしてください。特にユーザー入力をエスケープしていないからです。 –

答えて

0

、前あなたに配備するにはいくつかの予期せぬミスがありましたプロダクションサーバー。

上記の問題を特定して解決しても、書き換えルールに問題があることを示す404エラーが表示されます。

以下のルールが有効です。あなたはこれだけが必要です。 2つのルールの必要はありません。

RewriteRule ^([a-zA-Z0-9_-]+)\/?$ index.php?r=$1 
関連する問題