2012-02-20 13 views
-1

最近StackOverflowを含むすべてのフォーラムを検索しましたが、.htaccessファイルの使用方法が見つかりませんでした。このサービスを使用して仮想ディレクトリが作成されたと聞いたことがあります。.htaccessファイルの仮想ディレクトリを作成する

私は、ユーザー名が

www.example.com/username

またはユーザ名が設定されていない場合、ユーザープロファイルが表示されますが設定されている場合、ユーザープロファイルの仮想パスはこのように表示させたいですただ、Facebookのようなこのリンクを

www.example.com/profile.php?id=134531

誰も私にこの正確なコードを投稿できますか?前もって感謝します。

+0

"Mod rewrite"や "RewriteRule"を探していると、より良い検索結果が得られます。何百万ページものページがあります。 – BenOfTheNorth

+0

.htaccessについて絶対に何も知りませんし、1つの単語を理解していないので、誰も助けてくれませんでした。 –

+0

"仮想ディレクトリ"の作成は、Mod Rewriteと書き換えルールを使用して行います。あなたが1分以上それを探し回っていれば、より多くの情報を見つけることができます。 – BenOfTheNorth

答えて

2

をたくさん見つけるでしょう、URL書き換えます。ユーザー名またはIDを介してユーザープロファイルを読み込むprofile.phpページがあります。

まず、/[username]profile.php?username=[username]にマッピングしてください。 この解決策は、mod_rewriteがApacheサーバーにインストールされていることを前提としています。

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?username=$1 [L] 

(あなたのWebアプリケーションのルートに.htaccessファイルまたはApacheのconfの中のVirtualHostのディレクトリに置き、これを)

これは内部profile.phpへ/ [ユーザー名]に任意の要求を書き換えます?username = [username]。

利用可能な場合はユーザー名を使用し、そうでない場合はIDを使用します。リンクを生成する際には、そのIDを実装する必要があります。

<?php 
$profile_url = $username ? : 'profile.php?id='.$userid; 
?> 
<a href="/<?php echo $profile_url; ?>">View profile</a> 

これはリンクビルディングを処理します。そして、あなたはprofile.phpページを持っている:

$username = $_GET['username']; 
$userid = $_GET['id']; 

if ($username) { 
    /* Load user via username */ 
} else { 
    /* Load user via ID */ 
} 

インターネット上のApacheでURL書き換えにチュートリアルの負荷がありますが、ちょうどGoogleといくつかのテスト・セットアップを通してあなたの方法を作ります。

+0

okですが、このコードはprofile.phpにリダイレクトされます。 –

+0

あなたは代わりにそれを望みますか? –

+0

私は、ユーザーがpage.php?id = 153511という例にリダイレクトするよりもページを入力したいと思っています。このページ –

1

それはそれを見て、あなたは私はあなたが書き換えを意味する仮想ディレクトリで前提とチュートリアル

+0

.htaccessについて全く何も知らないし、単一の単語を理解していないので、助けられたものはありません –

関連する問題