1

リダイレクトとディレクトリインデックスに問題があります

DirectoryIndex invite.php about.php account.php

RewriteRule ^/?([a-z0-9_-]+)/?$ /user.php?u=$1 [L]

アバウトabout.phpフォルダにあるとしましょう。www.url.com/about/about.phpにアクセスすると、正常に動作します。しかし、に行くとwww.url.com/about/、それは私のuser.phpページに行きます。www.url.com/about(スラッシュを終了せずに)に行くと、www.url/about/?u=about

誰か助けてもらえますか?

同時に、ユーザーが行くことができる場所を設定しようとしていwww.url.com/andrewliuますwww.url.com/user.php?u=andrewliu

エンディングスラッシュとリダイレクトをどうにかして修正する必要があると思いますか?

ありがとう!

編集

私はこれを持っています

DirectoryIndex invite.php about.php account.php

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
RewriteRule ^/?([a-z0-9_-]+)/?$ /user.php?u=$1 [L]
RewriteCond %{QUERY_STRING} !^b= [NC]
RewriteRule ^(business)/(.*)$ /$1/index.php?b=$2 [L,NC,QSA]
4

1 に答える 1

6

リクエストが存在するファイルまたはディレクトリに対するものであるかどうかを確認するためのチェックを追加する必要があります。ルールの前に次の条件を追加する必要があります。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([a-z0-9_-]+)/?$ /user.php?u=$1 [L]

これにより、に移動したときに/about/、ディレクトリが存在するため、このルールは適用されません。しかし、に行くと/andrewliu、それがファイルまたはディレクトリでない限り長くなります。

于 2012-09-01T01:37:27.137 に答える