PHP で各ユーザーにバニティ URL を実装するにはどうすればよいでしょうか? Drax LLP ログイン システムの微調整バージョンとして、Web アプリのログイン システムを実装しています。
そのため、各ユーザーは自分のプロファイルを変更できる必要があります。これは最終的に自分のバニティ URL に表示されます.. xyz.com/user.
ヒント/アイデアはありますか?ありがとう..
関連するファイルの例を次に示します。
.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
index.php
<?php
function getWebPath() {
$location = "";
// Read the relative URL into an array
if(isset($_SERVER['HTTP_X_REWRITE_URL'])) { // IIS Rewrite
$location = $_SERVER['HTTP_X_REWRITE_URL'];
} elseif(isset($_SERVER['REQUEST_URI'])) { // Apache
$location = $_SERVER['REQUEST_URI'];
} elseif(isset($_SERVER['REDIRECT_URL'])) { // Apache mod_rewrite (breaks on CGI)
$location = $_SERVER['REDIRECT_URL'];
} elseif(isset($_SERVER['ORIG_PATH_INFO'])) { // IIS + CGI
$location = $_SERVER['ORIG_PATH_INFO'];
}
return $location;
}
$location = getWebPath();
print_r($location);
上記の関数は、フロント コントローラー クラスのどこかでメソッドになる必要があります。$location からベース パスを差し引くだけで、仮想パスが残ります。次に、やりたいことが何でもできます。たとえば、'/' で分割してから、URI に応じて次のコントローラーに残りの各部分を渡しながら、パスをたどっていきます。正規表現を使用して、より複雑なルーティング ルールを記述することもできます (Django や他のかなりの数のフレームワークで行われていることです)。
例: /profiles/hardik988
「プロファイル」を担当するコントローラに渡され、パスの残りの処理を決定します。ユーザー名を調べて、適切なテンプレートを表示する可能性があります。
比較的単純です。リクエストをのようなものmod_rewrite
にマッピングするルールがあります。www.domain.com/username
www.domain.com/users/username
www.domain.com/about
ただし、やなどの他のトップレベルのページがあると思われるため、何をユーザー名にすることを禁止するかを認識する必要がありますwww.domain.com/terms
。about
したがって、人々がユーザー名として登録する必要はありませんterms
。