apache - 使用 htaccess,仅在 url 包含查询字符串但允许站点资源(CSS、JS 等)工作时才允许访问站点?
问题描述
我知道这方面有很多问题,但我还没有找到一个符合我具体需求的问题。具体来说,我有一个客户想要阻止访问该站点,除非他们在 url 中有一个特定的字符串作为查询参数。
https://sub.domain.com/?someStringHere
我目前在 htaccess 中有这个:
RewriteEngine On
RewriteCond %{QUERY_STRING} !^someStringHere$ [NC]
RewriteRule ^.*$ http://www.google.com/ [L,R]
这很好用,除了它会阻止加载所有站点资源(CSS、JS 和图像),例如:
<link rel="stylesheet" href="/css/style.css">
如果我再添加:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
然后它允许在没有查询字符串的情况下进行访问,所以如果我做了一些愚蠢的事情,我很抱歉,但我很难过。感谢您为我提供的任何帮助!
解决方案
请尝试以下代码。我刚刚为公共资产添加了一条规则。
RewriteEngine On
RewriteCond %{QUERY_STRING} !^someStringHere$ [NC]
RewriteRule !\.(js|gif|css|jpg|png)$ http://www.google.com/ [L,R]
我可以向你推荐这个 htaccess 在线测试工具:https ://htaccess.madewithlove.be/
推荐阅读
- linux - 在 Linux 中如何信任 dotnet 的开发证书?
- javascript - 用lodash去抖axios拦截器实例?
- python - Flask JSON 输出为具有单个键的多个值
- javascript - 从/向 Firebase 发送/接收事件
- oracle - 如何在 Oracle PL/SQL 中向 VARCHAR2 添加不可打印的 ascii 控制字符?
- python - 如何组合 n 维切片以获得规范的 ndslice
- vba - SetRequestHeader 不允许冒号
- python - 保存海龟图
- python - 尝试创建我的类 Solution() 的对象时出错
- python - 在pandas python数据框中移动列并删除行