mod_rewrite がディレクトリ「パブリック」を完全に無視するようにするには、どのルールを設定すればよいですか? つまり、その中のファイルにアクセスできる必要がありますが、ファイルが存在しない場合は、サーバー エラー ページに FORBIDDEN や FILE NOT FOUND などのメッセージが表示されるはずです。カスタム エラー ページなどは必要ありません。mod_rewriteがまったくないように「パブリック」が動作するようにしたいだけです。
ここに私の .htaccess ファイルがあります:
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
私のファイル構造は
/system/
/application/
/public/
書き換えルールがまったく設定されていないように、フォルダー public を動作させ、完全に無視します。
編集
それは私の.htaccessファイルです:
RewriteEngine on
RewriteRule ^(public)($|/) - [L,NC]
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
私はすでに /public/ フォルダーにこの .htaccess を持っていました:
RewriteEngine off
上記のさまざまな回答をすべて試しました(およびGoogleからのトン)。私はこれまでに何を混ぜようとしました。
マイ フォルダ:
/system/
/application/
/public/
/public/.htaccess #RewriteEngine off
/public/favicon.ico
/index.php
以下は、私が得ている結果のURLです。
/public/favicon.ico -> I get the favicon
/public/faviDon.ico -> I get the index.php (without mod rewrite you would get "not found")
/public/ -> I get the index.php (without mod rewrite "forbidden")
そのため、ファイルが見つからなかった場合、またはフォルダーに直接アクセスした場合でも、URL を書き換えます。
見えますか?
努力してくれてありがとう!ほんとうにありがとう!