1

プロファイルページを処理するWebサイトを作成していて、この時点までURLからユーザー名を取得する必要がありますが、.htaccessの使用に問題があり、このエラーを修正する方法がわかりません。これは私の初めて.htaccessを使用する場合、WAMPパッケージを使用していますが、.htaccessファイルを追加すると、ブラウザにこのエラーが表示され、それを含むフォルダが非表示になります。

内部サーバーエラーサーバーで内部エラーまたは構成ミスが発生し、リクエストを完了できませんでした。このエラーが発生した時刻と、このエラーの直前に実行したアクションについては、サーバー管理者(admin @ localhost)に連絡してください。このエラーの詳細については、サーバーエラーログを参照してください。 これはprofile.phpの一部です

profile.php

  // updatede for using the GET methode for ge the data nedded from the url 
    if(isset($_GET['u']))
    {
          $username = mysql_real_escape_string($_GET['u']);
          if(ctype_alnum($username))
         {


          //check user exist
             $check = mysql_query("SELECT user_name, first_name FROM user WHERE user_name = '$username' ")or die(mysql_error());
             if (mysql_num_rows($check)==1) 
             {
               $get = mysql_fetch_assoc($check);
               $username = $get['user_name']; 
               $fname = $get['first_name'];
             }
             else
             {
                echo "<h2>User does not Exist!!</h2>";
                exit();  
             }
          }
       }

        echo "$username";
?>      

.htaccess

RewriteEngine On

RewriteRule^([a-zA-Z0-9_-]+)$ profile.php?u=$1



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

2 に答える 2

1

.htaccessファイルをUTF8文字エンコードで保存しないでください。ANSIに保存します

于 2013-03-17T20:50:51.880 に答える
0

profile.phpにエラーがないと仮定します。.htaccessファイルの最後の行を削除してみてください。また、Rewriteruleと'^'の間にスペースを追加します。ctype_alnum()関数があるため、正規表現に空白を追加することはこれとは何の関係もありません。これは英字のみを許可します。

これをコピーして.htaccessファイルに貼り付け、(もちろん)前の行を削除します。

RewriteRule上
のRewriteEngine^([a-zA-Z0-9 _-] +)$ profile.php?u = $ 1

于 2013-03-17T20:22:25.440 に答える