Apache 如何将现有文件以外的所有请求映射到处理程序
需要一些关于htaccess重写规则的帮助,我一直坚持 我有一个handler index.html,用于处理除现有文件之外的所有请求。 我使用的规则是:Apache 如何将现有文件以外的所有请求映射到处理程序,apache,.htaccess,handler,Apache,.htaccess,Handler,需要一些关于htaccess重写规则的帮助,我一直坚持 我有一个handler index.html,用于处理除现有文件之外的所有请求。 我使用的规则是: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.html [L] 但是我有一些与要处理的请求类似的文件名。如果有一个对/main的请求,它必须由index.html来处理,但是由于扩展名为-main.asd
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [L]
但是我有一些与要处理的请求类似的文件名。如果有一个对/main的请求,它必须由index.html来处理,但是由于扩展名为-main.asdfjaskldfjaskdffjasfd.js的现有文件,我得到了404错误,而不是处理
这个问题在nginx中非常容易解决,只需一句话:“try_files$uri$uri//index.html”;但我没有机会在仅生产的Apache上使用nginx
所以我需要一些规则方面的帮助。
尝试过(除数十种其他方法外):
完全访问:
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}]
提前感谢。在htaccess顶部添加以下内容以禁用多视图:
Options -MultiViews
描述了启用“多视图”选项时的功能:
如果
服务器收到对/some/dir/foo的请求,而/some/dir/foo未收到请求
存在,然后服务器读取目录,查找所有名为
foo.*,并有效地伪造了一个类型映射来命名所有这些
文件,并为其分配相同的媒体类型和内容编码
如果客户点名要求其中一个的话。那么
选择最符合客户要求的,并返回
文件
是 啊这是多视图公司的错。这是AWS,它有一些特定的配置。例如,它在Debian中是默认的,但在AWS上不是。所以我把这个选项设置为htaccess,一切都很顺利。谢谢@
Options -MultiViews