htaccess書き換えルールに関する助けが必要です。既存のファイルを除くすべてのリクエストをハンドラにマップする方法
私は、既存のファイルを除くすべての要求を処理するために使用されるハンドラindex.htmlを持っています。 私は、このルール使用しています:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.html [L]
をしかし、私は処理される要求に類似したいくつかのファイル名を持っています。/mainへのリクエストがあった場合、index.htmlで処理する必要がありますが、拡張子がmain.asdfjaskldfjaskdfjasfd.jsの既存のファイルがあるため、404エラーが発生します。
この問題は、1つのライナーでnginxに簡単に解決されます。 "try_files $ uri $ uri//index.html;"私は、生産専用のApacheでnginxを使う機会はありません。
だから私はそれらのルールにいくつかの助けが必要です。
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule^- [L]
RewriteRule^/index.html
全htaccessファイル:事前に
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_URI} ^/(demo-auth|api|oauth|password|login|logout|register|images)
RewriteRule^laravel.php [L]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule^/index.html
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
おかげ は(他の数十に加えて)これを試してみました。
ええと...それはMultiviewsの欠陥でした。それはAWSであり、それはいくつかの特定の構成を持っています。たとえば、Debianではデフォルトではありましたが、AWSにはありません。だから私はhtaccessにこのオプションを入れて、すべてうまくいった。ありがとう!@ – Korben