2009-05-24 11 views
0

私はGET変数を使って表示するものを決定するサイトを持っています。GET変数を持つURLを書き換えるにはどうすればよいですか?

@session_start(); 
@extract($_GET); 
@extract($_POST); 
. 
. 
. 
if (!$menu) { include("home.php"); } 
if ($menu=='buy') { include("buy.php"); } 
if ($menu=='invalidbuy') { include("invalidbuy.php"); } 
if ($menu=='buydone') { include("buydone.php"); } 
. 
. 
. 

私は「/よくある質問」に「/index.php?menu=faq」からの私のURLの名前を変更するには、.htaccessファイルの使用をしなければならないと思います。これどうやってするの??

+3

このようにして抽出物を使用することは、非常に目立ちます。誰かが後で変数に同調するパラメータを追加するとどうなるでしょうか? つまり、if($ logged_in){/ *ログインしたものの* /}と書かれたコード ユーザーはscript.phpに行きますか?logged_in = 1 –

答えて

1

あなたは/index.php?menu=foobarに内部/foobarようなパスのいずれかの要求を書き換えるために、次のruleを使用することができます。

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]+$ index.php?menu=$1 [L] 

追加RewriteCond directiveは唯一の非既存のファイル(!-f)が書き換えられていることを保証します。

関連する問題