2017-12-05 17 views
0

私は非常に基本的なPHPテンプレートシステムを作成しましたが、このURLのページを表示するために使用しています:/basedir/index.php?page= profile.phpを書き直しますか?user = username to profile/username

のコンテンツは、スクリプトhome.phpによって提供されます。

.htaccessの書き換えルールでは、私のURLは次のようになります:/ basedir/home

私が抱えている問題は、ユーザーのプロファイルを表示するために使用しているもう1つのGET変数を書き直すときに固執しているということです。今のところプロファイルページのURLは次のようになります:/ basedir/profile?user = username

私はこれを次のようにしたいと思います:/ basedir/profile/usernameこれが良好であれば、私は見当がつかないか、私は完全に新しい.htaccessファイルを記述する必要があれば

RewriteEngine On 

RewriteBase /basedir/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteRule ^([^?]*) ?page=$1 [L,QSA] 

はこれまでのところ、私の.htaccessは次のようになります。 ..

RewriteRule ^profile/([^?]*) ?page=profile&user=$1 [L,QSA] 

あなたRewriteRule ^([^?]*) ?page=$1 [L,QSA]の上にそれを挿入します。

+0

Laravelにはhtaccessがあらかじめ書き込まれています。あなたはhtaccessファイルを使うことができます。 https://laravel.com/docs/5.0/configuration#pretty-urls – anwerj

+0

また、このツール(http://htaccess.mwl.be/)をチェックすると、何が起こっているのかをよりよく理解することができます。 – anwerj

+0

@anwerjありがとう、私は見ましたが、私はまだそれを得ることができません...今のところX_x – emma

答えて

0

はあなたのコード、そして私の限られた理解に基づいて、私はこのような何かを推測します。

+0

'profile.php?user = ' –

+0

ああ、私は本当に@emmaが何を意味するのかわかりませんが、 '/ basedir/profile?user = username'か' /basedir/profile.php?user = username'か '/ basedir /?page = profile&user = username'を入力してください。たぶんあなたは働く答えを書くように頼むべきです。 –

+0

ありがとう..私はタイトルに注意を払わなかった。 :pまた、私はprofile.phpの前にスラッシュについて100%確信しているわけではありません。 – LGT

0

あなたのURL http://www.example.com/profile/usernamehttp://www.example.com/basedir/?page=profile/username

に変換されhttp://htaccess.mwl.be/で見ることができるように今、あなたは何をする必要があるかpageを爆発し、ユーザー名を取得basedirindex.phpを入れています。

$page = $_GET['page']; 
$parts = explode('/', $page); 


switch($parts[0]){ 
    case 'profile': 
     if(isset($parts[1])){ 
      $username = $parts[1]; 
      return doWhatEverYouWantToDoWithUsername($username); 
     } 
     return handleJustProfilePage(); 

    default: 
     return yourDefaultHandler(); 

} 

このアプローチは、routingと呼ばれ、いくつかの外部ルーティングライブラリで改善することができます。

+0

この回答ありがとうございます!しかしhtaccessを使ってそれを完了させる方法はありますか? – emma

関連する問題