apache - MOD_WRITE Apache Tomcat REWRITE CONDITIONS 结合 request_uri 和 request_method
问题描述
我正在尝试编写一个重写条件,我希望允许特定的 URL 与特定的请求方法结合使用。但我正在尝试一切,但没有运气。
我想用文字做什么:
如果我的 URI 是 /login 并且请求方法是 POST 则允许(如没有替换。)
我试过的东西不起作用
RewriteCond %{REQUEST_URI} *\.(css|js|html|png|jpg|jpeg|gif|txt|ttf|json|woff|ico)$ [OR]
RewriteCond %{REQUEST_URI} ^(/rest/api).*$ [OR]
RewriteCond %{REQUEST_METHOD} =POST
RewriteCond %{REQUEST_URI} ^(/login)$ [OR]
RewriteRule ^(.*)$ - [L]
RewriteRule ^(.*)$ /index.html
我想要什么
RewriteCond %{REQUEST_URI} .*\.(css|js|html|png|jpg|jpeg|gif|txt|ttf|json|woff|ico)$ [OR]
RewriteCond %{REQUEST_URI} ^(/jarvis/api).*$ [OR]
RewriteCond %{REQUEST_METHOD} =POST (HERE I want to put AND to COMBINE THEM)
RewriteCond %{REQUEST_URI} ^(/login)$ [OR]
RewriteRule ^(.*)$ - [L]
RewriteRule ^(.*)$ /index.html
我有一种感觉,这很容易,我只是不知道如何。任何帮助将不胜感激
解决方案
我设法使它工作。有一个解决方法。发布它可能会帮助其他用户。
使用如下所示的链标志
RewriteCond %{REQUEST_METHOD} POST [NC]
RewriteRule ^(.*)$ - [C]
RewriteCond %{REQUEST_URI} (/login)$ [NC]
RewriteRule ^(.*)$ - [L]
因此,如果传入的请求具有请求方法 POST,则没有进行替换,并且它移动到下一个规则(链标志工作),在这种情况下是请求 URI xxxx /login,如果匹配,则没有进行替换喜欢需要。
推荐阅读
- javascript - 如何在从 Google 电子表格获取边框值时避免多次尝试捕获未定义的值(通过使用 if/else 或其他方式)?
- excel - Excel - 指定范围内两个日期之间的差异
- javascript - Javascript链接列表合并返回未定义
- dart - 如何向扩展 DataTableSource 的类提供数据
- python - 如何在每个标签中仅获取 xpath 中的一个元素?
- r - 计算每个值在行数据框 r 中出现的次数
- ruby-on-rails - 使用包含时按联接表中的字段过滤
- postgresql - 尝试在 postgres 中插入 json 时面临“格式错误的数组文字”
- .htaccess - 301 从 .htm 重定向到 /
- database - 当 DB(MySQL,MongoDB)的多个 docker 实例使用来自同一个 DB 的同一个表时,如何处理数据库?