私はこれを2時間以上解決しようとしています。.htaccess を使用して URL を管理する個人サイトがあります。次のようになります。
RewriteEngine on
RewriteBase /
...
RewriteRule ^sklad/?$ index.php?action=sklad
RewriteRule ^sklad/user/([0-9]+)?$ index.php?action=sklad&user=$1
RewriteRule ^sklad/folder/(.+)?$ index.php?action=sklad&folder=$1
RewriteRule ^sklad/file/(.+)?$ engine/ajax/sklad.php?file=$1
RewriteRule ^sklad/logout/?$ index.php?action=sklad&op=logout
...
RewriteRule ^admin/?$ admin.php
RewriteRule ^admin/news/?$ admin.php?action=news
最初の 5 つは問題なく動作します。admin/ one は正常に動作します。しかし、admin/news/にアクセスしようとすると、空白のページが表示されます。Apache によって表示またはログに記録されるエラーはなく、出力もありません。admin.php?action=newsは正常に動作しています。
sklad/フォルダーとadmin/フォルダーの両方がサーバー上に物理的に存在します。しかし、admin/フォルダーの名前を別の名前に変更するか、最後のRewriteRuleを次のように変更すると
RewriteRule ^admin123/news/?$ admin.php?action=news
admin123/news/にアクセスできます。サーバー上に存在する実際のフォルダーと関係がある場合、最初の 5 つのルールが機能するのはなぜですか? これは意味がありません。
私はアイデアがありません。ここの誰かが助けてくれることを願っています...