2011-01-24 9 views
0

私は自分のドメイン構造をdomain.com/username(twitter/facebookなどのように)しています。ディレクトリを作成せずにURLを処理する方法

私は、ユーザ名のディレクトリを作成し、そこにファイルを配置してそのURLから表示する必要があります。

すべてのユーザー用のディレクトリを作成せずにURLを処理するより良い方法はありますし、単にURLを取得し、それがメインのドメインのみ(つまりからデータベースからユーザデータを読み込む&あるユーザーのページを見つけ出しますdomain.comのインデックスページ)

答えて

2

mod_rewriteの

http://www.workingwith.me.uk/articles/scripting/mod_rewrite

基本的に、あなたの「本当の」URLはdomain.com/profile.php?name=Andrewようになり、それがその名前を持つユーザーのすべての情報を表示します。 mod_rewriteを使用してdomain.com/andrewdomain.com/profile.php?name=Andrewの「ショートカット」にすることができます。

ただ、これをテストし、それがうまく働いた:

profile.php -

<?php 

echo '<h1>' . ucwords($_GET['name']) . '</h1>'; 

?> 

の.htaccess -

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/\.]+)/?$ profile.php?name=$1 [L] 

私はhttp://localhost/andrewを訪れたとき、私はちょうど同じように、私の名前を参照そうするべきです。

+0

.htaccessが更新されたので、重要なものは書き換えられません。 – Andrew

1

はい、実際のファイルではないすべてのリクエストを、要求されたユーザのデータを表示するPHPスクリプトに書き換えます。アパッチのmod_rewriteを使用するように.htaccessファイルまたはhttpd.confでこれを入れて:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /username.php [L] 

その後username.phpは、URLを参照してくださいユーザ名を選ぶと、適切なコンテンツを表示するために$_SERVER['REQUEST_URI']で見ることができます。

関連する問題