URL 重写:如何从 Apache 中的 URL 中删除电子邮件参数?
URL Rewrite: how to remove email parameters from an URL in Apache?
如何使用重写规则从 Apache 服务器上的 URL 中删除电子邮件参数?
基本上我需要删除 url 中存在的任何电子邮件参数,例如:
www.example.com/?param_name=nobody@example.com
将改写为
www.example.com/
或
www.example.com/?param_name_1=not_an_email¶m_name_2=nobody@example.com
到
www.example.com/?param_name_1=not_an_email
试试这些规则:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.+|)?&[^=]*=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}((?:&(.*))|)$
RewriteRule (.*) ?%1%2 [NC,L]
RewriteCond %{QUERY_STRING} ^[^=]*=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$
RewriteRule (.*) ? [NC,L]
RewriteCond %{QUERY_STRING} ^[^=]*=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}(&|)((?:&(.*))|)$
RewriteRule (.*) ?%1%3 [NC,L]
已测试here
第一条规则匹配电子邮件地址之前和之后可选的其他参数的查询字符串,例如:
www.example.com/?param_name_1=not_an_email¶m_name_2=nobody@example.com
或
www.example.com/?param_name_1=not_an_email¶m_name_2=nobody@example.com¶m_name_3=not_an_email
第二条规则匹配由单个参数(电子邮件地址)组成的查询字符串,例如:
www.example.com/?param_name=nobody@example.com
第三条规则匹配电子邮件地址为第一个参数,其他参数在后的查询字符串,例如:
www.example.com/?param_name_1=nobody@example.com¶m_name_2=not_an_email
它最多只能匹配一个电子邮件地址。用于匹配电子邮件地址的正则表达式来自 here.
如何使用重写规则从 Apache 服务器上的 URL 中删除电子邮件参数?
基本上我需要删除 url 中存在的任何电子邮件参数,例如:
www.example.com/?param_name=nobody@example.com
将改写为
www.example.com/
或
www.example.com/?param_name_1=not_an_email¶m_name_2=nobody@example.com
到
www.example.com/?param_name_1=not_an_email
试试这些规则:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.+|)?&[^=]*=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}((?:&(.*))|)$
RewriteRule (.*) ?%1%2 [NC,L]
RewriteCond %{QUERY_STRING} ^[^=]*=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$
RewriteRule (.*) ? [NC,L]
RewriteCond %{QUERY_STRING} ^[^=]*=[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}(&|)((?:&(.*))|)$
RewriteRule (.*) ?%1%3 [NC,L]
已测试here
第一条规则匹配电子邮件地址之前和之后可选的其他参数的查询字符串,例如:
www.example.com/?param_name_1=not_an_email¶m_name_2=nobody@example.com
或
www.example.com/?param_name_1=not_an_email¶m_name_2=nobody@example.com¶m_name_3=not_an_email
第二条规则匹配由单个参数(电子邮件地址)组成的查询字符串,例如:
www.example.com/?param_name=nobody@example.com
第三条规则匹配电子邮件地址为第一个参数,其他参数在后的查询字符串,例如:
www.example.com/?param_name_1=nobody@example.com¶m_name_2=not_an_email
它最多只能匹配一个电子邮件地址。用于匹配电子邮件地址的正则表达式来自 here.