【发布时间】:2020-05-30 01:24:00
【问题描述】:
我切换了服务器,突然我的一些 .htaccess 规则停止工作。其中之一是将/scripts.js 重定向到我的/includes/load_js.php 文件的波纹管。
# NOT WORKING
RewriteCond %{REQUEST_URI} scripts.js
RewriteRule . includes/load_js.php [L]
奇怪的是,如果(仅出于测试目的)我将规则从 scripts.js 重命名为 scripts.tst 然后可以正常工作,我可以将扩展名更改为除 .js 或 .css 之外的任何内容并且正在工作,否则对于 .js 和 .css 我得到 404 Not Found。
# WORKING BUT NOT NEEDED, I NEED .JS
RewriteCond %{REQUEST_URI} scripts.tst
RewriteRule . includes/load_js.php [L]
非常感谢任何帮助! 谢谢!
【问题讨论】:
-
我们需要查看您的完整重写配置,以确定是否有任何其他规则可能会干扰。
-
仅供参考,您不需要 RewriteCond 来检查 URL path,RewriteRule 可以自行匹配。
-
感谢您的回答,出于测试目的,我只在 .htaccess 文件中保留了该规则,因此没有其他规则干扰。服务器之间的唯一区别是新服务器(规则不起作用)实际上是 NGINX。是否可以将其配置为限制 JS/CSS/JPG 重写?我以前没有使用 NGINX 的经验,也不知道是否建议将其与 .htaccess 混合,但我无权访问 nginx.conf 文件。所以基本上该规则适用于任何文件扩展名,除了 .js/.css/,jpg 这就是为什么我猜是一些服务器限制?谢谢!
-
嗯?据我所知,NGINX 不关心 .htaccess 文件。如果您安装了任何特定模块以使其实际使用它们,那么您需要将该信息添加到您的问题中。
-
我无权访问服务器,客户端只是给了我 FTP 访问权限,我已将文件从旧服务器上传到新服务器,我检查了
phpinfo(),我看到了服务器已安装:Apache 2.0 Handler和Server API: FPM/FastCGI。我想我将不得不联系网站管理员以获得更多澄清。到目前为止,感谢您的帮助,当我找到解决方案时,我会回来更新我的问题。谢谢!
标签: javascript php .htaccess mod-rewrite http-status-code-404