apache - 具有特定前缀的 JS 文件的 RewriteRule 的 .htaccess 问题
问题描述
我试图通过剥离前缀来允许用户访问以 wp- 为前缀的 JS 文件。但是,它确实会影响目录中没有前缀的其他文件。我知道我在某处遗漏了一些东西,这是规则:
RewriteRule ^/?includes/js/(.*).js$ /wp-includes/js/wp-$1.js [QSA,L]
使用该规则,/wp-includes/js/wp-file.js
可以访问类似的URL,includes/js/file.js
但是,/wp-includes/js/no-prefix.js
不能访问类似的文件includes/js/no-prefix.js
。
我知道这一定与我的重写规则格式有关。有人能帮助我吗?
解决方案
这是您需要添加到/.htaccess
(根文件夹)的规则
RewriteCond %{DOCUMENT_ROOT}/wp-includes/js/wp-$1\.js -f [NC]
RewriteRule ^includes/js/([^/]+)\.js$ /wp-includes/js/wp-$1.js [L]
注意:把它放在WP的主要重写规则之前。
简短说明:如果 url 是/includes/js/xxx.js
,它首先检查/wp-includes/js/wp-xxx.js
物理存在。如果是这样,它会在内部重写。
警告:mod_rewrite
与 WP 一起使用可能会导致问题。在这种情况下不应该是一个问题,但由于 WP 的内置重写系统,有时这样做是一个更好的主意。
推荐阅读
- c# - 无论如何我可以将此代码优化得更短吗?
- null - 在 Rust 函数中返回 Null
- jquery - 跨域 AJAX 请求困境
- google-apps-script - 构建用于自动更新的 Google 表格宏
- javascript - 调用未定义的方法 stdClass::toJson()
- angularjs - 如何将 Tinymce 与 AngularJS 集成
- node.js - 上传后无法获取签名网址
- python - 我需要一些关于如何在 Python 上执行以下工程方案的指导
- javascript - 使用 Lodash 从嵌套数组中删除数组项
- kendo-ui - Kendo Grid:调整(缩小)任何列时最后的空白区域