1

このトピックに関して、このウェブサイトにはたくさんの質問があり、Google に関するチュートリアルもたくさんあります。しかし、私はしばらくの間検索しましたが、私の特定の状況を説明するものを見つけることができないようです.

アプリケーション全体がウェブサイトのサブドメインのディレクトリに保存されているソーシャルアプリケーションを構築しています: subdomain.example.com/network/ <-ネットワークはすべてのアプリケーションファイルのディレクトリです。

サブドメインのルートに .htaccess ファイルがあり、現在のところ、すべてのファイルから .php を削除しており、プロジェクト全体で正常に機能しています。各ユーザーのプロファイルが基づいている user.php ページがあり、各ユーザーの一意の識別子はユーザー名です (ほとんどの人が使用する「id」ではありません)。したがって、現在、URL は/network/user.php?usernameのようになります。 =あまりかわいくないTylerB。これを/network/user/TylerBのように見せるためにさまざまなことを試しましたが、何もうまくいかないようです。ディレクトリにあるのか、サブドメインにあるのか、それとも何なのかはわかりません。現在、/network/user/TylerB (TylerB は私のユーザー名) があると、404 エラーが発生します。

これが私の現在の.htaccessファイルです:

RewriteEngine On
RewriteRule ^user/([^/\.]+)/?$ user.php?username=$1 [L]
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L]
4

1 に答える 1

1

ディレクティブを設定RewriteBaseし、完全なパターンで照合することをお勧めします。必ず/network/ディレクトリに書き換えてください。

RewriteEngine On
RewriteBase /
RewriteRule ^network/user/([^/\.]+)/? /network/user.php?username=$1 [L]
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L]

http://htaccess.madewithlove.be/のテストツールを使用すると、次の出力が得られます。

This rule was met, the new url is http://example.com/network/user.php?username=name
The tests are stopped because the L in your RewriteRule options
于 2012-10-26T01:57:59.537 に答える