Mod Rewrite-URL中的正则表达式等号



在我的.htaccess中,我有一个重写规则,可以从外观整洁的url中读取值。

我需要将所有(虚荣(url发送到request.php,除了一个路径为/change-email/[number ( and or ) character and the '=' sign]的url

所有操作都很好,但当字符串具有等号时,会从其他规则中截取。

示例:

mysite.com/change-email/-->转到request.php[确定]

mysite.com/change-email-->转到request.php[确定]

mysite.com/change-email/dasu564345ytfghafsfda-->转到change-email.php[ok]

mysite.com/change-email/dasu564345ytfghafsfda=-->转到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

w不考虑=。尝试以下针对change-email.phpurl的正则表达式:

^change-email/([w=]{1,})(/|)?$

最新更新