Regex Mod Rewrite-URL中的正则表达式等号
在我的.htaccess中,我有一个重写规则,它从一个干净的url读取值 我需要将所有(虚荣)url发送到Regex Mod Rewrite-URL中的正则表达式等号,regex,apache,.htaccess,mod-rewrite,url-rewriting,Regex,Apache,.htaccess,Mod Rewrite,Url Rewriting,在我的.htaccess中,我有一个重写规则,它从一个干净的url读取值 我需要将所有(虚荣)url发送到request.php,除了带有以下路径的url:/change email/[数字(和或)字符和“=”符号] 所有这些都可以正常工作,但当字符串具有等号时,会从其他规则中截取 示例: mysite.com/change email/-->转到request.php[确定] mysite.com/change email-->转到request.php[确定] mysite.com/chan
request.php
,除了带有以下路径的url:/change email/[数字(和或)字符和“=”符号]
所有这些都可以正常工作,但当字符串具有等号时,会从其他规则中截取
示例:
mysite.com/change email/
-->转到request.php
[确定]
mysite.com/change email
-->转到request.php
[确定]
mysite.com/change-email/dasu564345ytfghasfda-->转到change email.php
[确定]
mysite.com/change email/dasu564345ytfgfhafsfda=-->转到request.php
[不正常]它应该转到/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
重新编写引擎打开
重写条件%{HTTPS}关闭
重写规则^(.*)https://%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
#主要应用程序规则
RewriteRule^更改电子邮件(\/|)?$/request.php?key=更改电子邮件[QSA]
改写器>更改电子邮件/([\W+] { 1,})($//包含/更改电子邮件)。PHP?电子邮件=1美元[QSA] < P> <代码> \W/Eng>不考虑<代码>=< /代码>。请尝试为change email.php
url使用以下正则表达式:
^更改电子邮件/([\w\=]{1,})(\/|)?$