これが私の既存の .htaccess ファイルです。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond {REQUEST_FILENAME} !^images
RewriteRule ^files(.+)$ ../../fileManager/server/php/files/$1 [L]
RewriteRule ^(.+)$ subpage.php?url=$1 [QSA,L]
あまり複雑にせずに、できる限りこれを説明しようと思います。最終的には、次のようになります。
URL のルート URL の直後に「/files」が含まれている場合 (例: http://www.someurl.com/files/username/myFile.jpg )、ユーザーを特定の URL に誘導する必要があります (この例では: ../../fileManager/server/php/files/$1)。
2 番目のルールでは、URL のルート URL の後に「/files」以外が含まれている場合、それらを「subpage.php」に誘導します。(例: http://www.someurl.com/aboutme )
これらは両方とも完全に正常に機能します。ただし、これらの両方のルールを設定すると、/ または /index.php (ルート URL: http://www.someurl.com ) にアクセスできなくなります。subpage.php にリダイレクトされ続けます。
ちょっと待って!もっとあります!
最初の RewriteRule 行を削除すると:
RewriteRule ^files(.+)$ ../../fileManager/server/php/files/$1 [L]
...次に、2 番目の書き換えルールは、/ または /index.php に移動すると、そこに移動しますが、他の URL に移動すると、subpage.php に誘導するという点で、私が望むように機能します。
だから私が理解していないのはこれです: 両方の RewriteRules があると index.php にアクセスできないのに、2 つ目の RewriteRule しかないのはなぜですか?
さらに、これを修正する方法について誰か提案をいただけますか?
どんな情報でも大歓迎です!前もって感謝します!