2012-04-18 20 views
0

htaccessファイルでregexを使用して/ [username]をキャッチし、これをユーザ名ページにリダイレクトします。たとえば、mywebsite.com/johnはmywebsiteに転送します。 com/username?u = john。これは動作しますが、現在存在するディレクトリに一致するものはすべて除外します。したがって、誰かがmywebsite.com/sign-upに行くと、そのディレクトリ(/サインアップ)が存在するため、これは再指示のために除外されます。それは可能なのですか?それは通常の練習ですか?ありがとうございました。ディレクトリが存在しない限りhtaccessの正規表現の正規表現

編集:理想的には、すべての既存のディレクトリを手動で除外する必要はありません。私はそれがすべての既存のディレクトリのために自動であることを望みます。

答えて

0

前に書き換え条件を使用してください。 !-fは既存のファイルではなく、!-dは既存のディレクトリではありません。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z]+)$ username?u=$1 [L] 
+0

私はこれを試しましたが、一部のケースでは動作しますが、すべてではありません。たとえば、「/ log-in」を追加すると、正しい方向が正しく表示されませんが、「/ css」を追加すると、cssディレクトリが存在していても方向は変わります。何かご意見は? –