0

Advertisement.phpとGidc.phpの2つのページがあり、user = "some value"がある場合は機能します。例:

example.com/advertisement_final_page.php?user=sumeet

example.com/gidc_final_page.php?user=nikhil

htaccessのコードで上記のページにリダイレクトしたいのですが:

example.com/sumeet

example.com/nikhil

私のデータベースは次のとおりです。

id 1

タイプ広告

ユーザーsumeet

連絡先 651651

オーナー SumeetPatel

ウェブサイト asdfkjh.com

メール sdfjh@skdj.com

アドレス skjdf、sd、sdh

id 2

タイプGidc

ユーザーnikhil

連絡先 651651

オーナーの ニキル・パテル

ウェブサイト sadfjh.com

メール sdf@sdhf.com

アドレス skjdf、sd、sdh

私のhtaccessルール:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^([a-zA-Z0-9_-]+)$ advertisement_final_page.php?user=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ gidc_final_page.php?user=$1

しかし、上記のコードによって、advertising_final_page.phpページに到達します。私が入った場合のように

example.com/nikhil

にリダイレクトします

example.com/advertisement_final_page.php?user=nikhil
4

2 に答える 2

2

ルールのパターンは同じようです。RewriteEngineは、可能な最初のルール、この場合は最初のルールに一致します。

おそらく、すべてのリクエストをリダイレクトするコントローラーファイルを作成する必要があります。次に、から必要なユーザーを$_GET['user']読み取り、データベースからユーザーのデータを読み取り、ユーザーのに基づいて適切なPHPファイルをリダイレクト/インクルードしますType

于 2012-06-12T10:13:45.380 に答える
1

2番目の一致は、前の一致が間違っている場合にのみ処理されます。この場合、両方が同じであり、最初のものは常にTRUEです。したがって、advertisement_final_page.php?user=nikhilがロードされ、残りの行はスキップされます。

あなたが本当に達成したいことを伝えることができ、あなたを導きましょう。:-)

- - - - - - - - - - - - 編集 - - - - - - - - - - - -

必要に応じて、次のことができます。

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

redirect.php内に、次のように記述できます。

$u = $GET['user'];

if( $u == 'sumeet'){
   header('location: advertisement_final_page.php?user=sumeet');
} else if ( $u == 'nikhil') {
   header('location: gidc_final_page.php?user=nikhil');
}

ただし、このコードは標準のコードではないことを理解してください。このコードをより良いものにするには、すべての名前を比較するために$user使用するのではなく、データベースをチェックして、それに応じてリダイレクトする必要があります。if()

そのために、次のようなテーブルを使用できます。

+------------+---------------------------------------+
|  username  |             redirect_url              |
+------------+---------------------------------------+
|   nikhil   |       gidc_final_page.php?user=       |
+------------+---------------------------------------+
|   sumeet   |  advertisement_final_page.php?user=   |
+------------+---------------------------------------+
|    alice   |       gidc_final_page.php?user=       |
+------------+---------------------------------------+
|     ....   |                  ....                 |
+------------+---------------------------------------+

これがお役に立てば幸いです:-)

于 2012-06-12T10:18:09.603 に答える