2017-03-13 19 views
0

私はindex.phpと同じ方法を使いたいhtaccessに問題がありますか?p = '$ _私のaccount.phpに適用する[' page ']' $ _GET ['username'] 'は同じウェブサイトにあります。これは私のhtaccessのコードです:htaccess解決重複変数

RewriteEngine on 
RewriteRule ^inc/.*$ index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)$ index.php?p=$1 [QSA,L] 

RewriteEngine on 
RewriteRule ^inc/.*$ index.php?p=account.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([\w-]+)$ index.php?p=account.php&username=$1 [QSA,L] 

私は私のページのURLは、このような類似または同じになりたい:

www.composeplus.com/page

とユーザーがログインし、アカウント名にアクセスすると、次のようになります。

www.composeplus.com/username

または

www.composeplus.com/account/username

誰も私のためのソリューションを持っていますか?ありがとう

+0

基本的には、どのような種類のURLを提供するのか、必要なのはindex.phpへの各ルートのブートストラップだけです。したがって、ユーザがログインしている場合は、 'www.composeplus.com/account/username'で始まるリンクだけを表示します.htaccessの最初の部分はOKと思われ、2番目の部分は必要ありません。 – JustOnUnderMillions

+0

しかし、私はwww.composeplus.com/account/pagna(pagnaは私のユーザ名です)を試してみると、**が見つかりませんでした。 要求されたURL /composeplus.com/account/pagnaがこのサーバ上に見つかりませんでした。 さらに、ErrorDocumentを使用してリクエストを処理しようとすると、404 Not Foundエラーが発生しました**上記のコードのみを使用する場合 Apache/2.4.23(Win32)OpenSSL/1.0.2h PHP/5.5.38 localhostのポート80のサーバー –

答えて

0

私のコメントを少し鮮明にしてみましょう。

クリート

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/index.php 
RewriteRule ^(.*)$ index.php?qwerty=$1 [QSA,L] 

のようなサーバーのルートWebフォルダ内の.htaccessだから今、実際のファイルではありませんeverthingがでqwerty=FOO/BAR

として完全なURLでindex.phpにリダイレクトされますindex.phpあなたは与えられた入力に対して反応を知ることができます。

は、あなたはそれが仕事をリダイレクトする方法basiclyつまりwww.composeplus.com/index.php?qwertz=/page

www.composeplus.com/index.php?qwertz=/account/usernamewww.composeplus.com/pageにリダイレクトされますwww.composeplus.com/account/usernameを呼ぶとしましょう。通常、index.phpの関数はqwertzをチェックし、APIに応じて必要なサブファイル/クラスを呼び出します。

注:これは例です。あなたのものにはinc/というフォルダがあり、それは何か分かりません。

関連する問題