我试图将404 json fales重定向到404.json(使用" {}"作为内容)。但是apache正在将文件夹重定向到具有相同文件夹名称的html文件,并且任何自定义404.json重定向都会失败。
文件结构:
工作(重定向到404.html):
工作(重定向到404.json):
工作(打开文件):
无效(默认apache 404):
似乎apache正在重定向" example1 /" to" example1.html",特别是当我尝试访问目录内的文件http://example.com/example2/data.json时,显示404消息:
在此服务器上找不到请求的网址/example2.html/data.json。
即使没有.htaccess也会发生!所有问题都是因为example1.html文件。
htaccess的:
# Rewrite MOD
Options +FollowSymLinks
RewriteEngine On
# If requested resource exists as a file or directory go to it
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule (.*) - [L]
# 404 json
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.json$ 404.json [L]
# 404 page
RewriteRule . 404.html [L]
也许是一些apache文件映射配置,但我找不到任何关于它的信息。它只发生在部署服务器上,对于localhost来说没问题。 = /
答案 0 :(得分:1)
在关闭MultiViews
的情况下保持这样:
Options +FollowSymLinks -MultiViews
RewriteEngine On
# If requested resource exists as a file or directory go to it
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# 404 json
RewriteRule \.json$ 404.json [L,NC]
# 404 page
RewriteRule ^ 404.html [L]