在我的.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.php
url的正则表达式:
^change-email/([w=]{1,})(/|)?$