regex - Mod Rewrite - URL 中的正则表达式等号
问题描述
在我的 .htaccess 中,我有一个重写规则,它从一个干净的 url 读取值。
我需要将所有(虚荣)网址发送到request.php
具有此路径的网址除外:/change-email/[number ( and or ) character and the '=' sign]
一切正常,但是当字符串具有等号时,会从其他规则中截取。
例子:
mysite.com/change-email/
--> 转到request.php
[ok]
mysite.com/change-email
--> 转到request.php
[ok]
mysite.com/change-email/dasu564345ytfghafsfda --> 转到change-email.php
[ok]
mysite.com/change-email/dasu564345ytfghafsfda= --> 转到request.php
[not ok] 它应该转到/includes/change-email.php
是主应用程序部分中的 3° 规则
这是.htaccess
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#main app rules
RewriteRule ^change-email(\/|)?$ /request.php?key=change-email [QSA]
RewriteRule ^change-email/([\w+]{1,})(\/|)?$ /includes/change-email.php?email=$1 [QSA] <-- need to catch = sign!
RewriteRule ^([\w+]{1,})(\/|)?$ /request.php?&key=$1 [QSA]
ErrorDocument 404 /request.php
解决方案
\w
不考虑=
。尝试以下change-email.php
url 的正则表达式:
^change-email/([\w\=]{1,})(\/|)?$
推荐阅读
- python - Dlib 安装到本地 conda 目录而不是系统目录
- java - log4j.properties 文件在项目/类位置中消失
- python - 如何在python中删除数组的最后一列
- fpga - 在启动 DMA 和 RDMA 操作时没有 CPU 交互
- azure - 无法更新计划 - 启动-停止-VM
- python - 在列中添加具有累积唯一值计数的列
- java - 在 java 客户端的 uber cadence 工作流程中取消和重新安排睡眠时间
- c# - ASP.Net Core 记录没有详细信息的 Kestrel 错误
- visual-studio-code - 尽管在 Windows 的 VS Code 中安装了字体并激活了连字,但仍无法显示 FiraCode
- c - 在 C 中更新数组中的值