0

PHP で各ユーザーにバニティ URL を実装するにはどうすればよいでしょうか? Drax LLP ログイン システムの微調整バージョンとして、Web アプリのログイン システムを実装しています。

そのため、各ユーザーは自分のプロファイルを変更できる必要があります。これは最終的に自分のバニティ URL に表示されます.. xyz.com/user.

ヒント/アイデアはありますか?ありがとう..

4

2 に答える 2

0

関連するファイルの例を次に示します。

.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

「プロファイル」を担当するコントローラに渡され、パスの残りの処理を決定します。ユーザー名を調べて、適切なテンプレートを表示する可能性があります。

于 2010-09-24T05:18:03.437 に答える
0

比較的単純です。リクエストをのようなものmod_rewriteにマッピングするルールがあります。www.domain.com/usernamewww.domain.com/users/username

www.domain.com/aboutただし、やなどの他のトップレベルのページがあると思われるため、何をユーザー名にすることを禁止するかを認識する必要がありますwww.domain.com/termsaboutしたがって、人々がユーザー名として登録する必要はありませんterms

于 2010-09-23T07:57:30.330 に答える