我正在创建一个单页应用程序。当用户更改 url 或重新加载时,“mysite.com/”之后的任何内容都作为变量发送到 ajax 请求的子目录内容(例如 /users/me)
当相对 url 只有一个“子目录”时,此代码效果很好。但是子子目录,甚至简单的“子目录/”,都会收到错误并且不加载任何内容。
- mysite.com/sub_directory -------------- 导航到 mysite.com/index.html
- mysite.com/sub_directory/ ------------- 抛出错误
- mysite.com/sub_directory/sub-sub-directory --- 抛出错误
资源解释为样式表,但使用 MIME 类型 text/html 传输:“mysite.com/all/default.css”
资源解释为脚本,但使用 MIME 类型 text/html 传输:“mysite.com/all/jquery.js”
htaccess 尝试:将“mysite.com/”之后的任何内容重定向到 index.html。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.html [L]
附加信息:
.* 和 (^/?. $) 和 (^. /$)* 和 .*/ 等产生相同的结果
,包括 .css 和 .js 文件的 AddType 规则似乎什么都不做。
htaccess 文件与 index.html 位于同一文件夹中
这是一个正则表达式问题吗?通常当 htaccess 代码出现问题时,服务器会响应 500 内部服务器错误,但在这种情况下不会加载任何内容并抛出上述错误。
更新:我有一堆脚本位于“脚本”文件夹中,与 index.html 和 .htaccess 位于同一目录级别。它们都加载没有错误,也许问题是 .htaccess 没有应用于它自己的目录级别的文件?