7

ユーザーがアクセスしたときに何が起こるかをPHPファイルでキャッチして管理したい:

http://profiles.mywebsite.com/ sometext

何かが変化しています。

たとえば、someuser 、 johnなどにすることができます。その場合、PHP ファイルでその構造からの要求を処理する必要があります。

私の主な目標は、サイトのユーザーを対応するプロファイルにリダイレクトする特定の PHP ファイルを用意することですが、プロファイルはその URL 構造とは異なります。ユーザーに覚えやすいプロファイル URL を提供することを目指しています。

答えてくれた人ありがとう!

4

5 に答える 5

18

Apache 構成ファイル [VirtualHost または Directory ディレクティブ] または .htaccess ファイルに次の行を追加します。

Options -MultiViews

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L,NC,QSA]
</IfModule>

有効なファイル名またはディレクトリに対応しないすべての受信リクエスト (RewriteCond上記のコードの 's はそれを確認してください) を index.php ファイルに静かにリダイレクトします。さらに、ご覧のMultiViewsとおり、リダイレクトを機能させるには、オプションも無効にする必要があります。通常、RewriteCondそこに配置したこれら2つの と競合します。

index.php 内では、変数REQUEST_URIを介してデータにアクセスできます。RewriteRule のパラメーターがアクティブであるため、クエリ文字列データを望ましくない方法で汚染する可能性があるため、 を$_SERVER['REQUEST_URI']介して URI を渡さないでください。GET[QSA]

于 2011-03-07T10:07:20.457 に答える
5

書き換えルールを使用する必要があります。

Apache (.htaccess) では、次のようになります。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>

次に、index.php で、PHP コードで $_GET['url'] を読み取ることができます。

于 2011-03-07T10:03:23.887 に答える
0

.htaccess ファイル ( http://httpd.apache.org/docs/1.3/howto/htaccess.html ) を使用して、url を profile.websites.com/index.php?page=sometext のようなものに書き換えることができます。次に、index.php のテキストを使用して、必要なことを行うことができます。

于 2011-03-07T10:01:51.487 に答える
0

これを行う明白な方法は、404 errorDocument を使用することです。これにより、mod_rewrite をいじることがすべて保存されます。

于 2011-03-07T10:20:04.923 に答える
-6

MVC について聞いたことがない場合は、その時が来たら、最もシンプルで非常に高速な CodeIgniter から始めます。デフォルトのコントローラーを使用すると、次のような URL を使用できます
domain.com/usernam/profile
domain.com/usernam/profile/edit
domain.com/usernam/inbox
domain.com/usernam/inbox/read/messageid

于 2011-03-07T10:04:19.097 に答える