1

私がサイトを持っているとしましょう

www.mysite.com

とにかくユーザーページのURLを持たなければならないことはありますか

www.mysite.com/username

いつもの代わりに

www.mysite.com/user.php?id=なんでも

複数のフォルダーとインデックスページを持たずにphpでこれが可能かどうかを知りたいです。私の理解では、特にあるユーザーから別のユーザーにバウンスする必要がある場合、効率に問題があるため、フォルダー方式は避けたいと思います。誰かが自分の情報を取得すると言う方がはるかに簡単なので、この方法を実行したいと思います

www.mysite.com/username

他のオプションより。ヘルプ (チュートリアル、サイトなど) をいただければ幸いです。前もって感謝します。

4

3 に答える 3

2

複数のフォルダーとインデックスページを持たずにphpでこれが可能かどうかを知りたいです。

はい、可能です。すべてのリクエストを index.php にリダイレクトし、この URL (ルート) を手動で処理できます。

すべてのリクエストを index.php にリダイレクトするサンプル .htaccess

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?route=$1 [L,QSA]

しかしの実装

www.mysite.com/username

は簡単なことではありません。/register、/login、/post などのすべてのシステム url を知っている必要があり、これらのユーザー名の登録を許可しないでください。このスキームを実装することをお勧めします。

www.mysite.com/~username また www.mysite.com/user/username

于 2013-11-01T13:33:55.693 に答える
2

任意の種類のルーター [例: klein ] でフロント コントローラー パターンを適用すると、webroot に単一のユニバーサル ファイルが必要になります。.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
于 2013-11-01T13:35:23.667 に答える
1

はい、DOCUMENT_ROOT/.htaccessファイルで次のルールを使用してください。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /user.php?id=$1 [L,QSA]
于 2013-11-01T13:28:33.940 に答える