繁体   English   中英

.htaccess代码QSA用多个查询参数重写

[英].htaccess code QSA rewrite with multiple query parameters

我有.htaccess设置将事件页面从/ schedule / event /?q = event-name-here重定向到/ schedule / event / event-name-这里

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^event/(.*)$ event.php?q=$1 [QSA]

但是,我需要为当天添加第二个查询参数。 我想要的新网址是:/ schedule / event / friday / event-name-这里我尝试重写它:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^event/(.*)$ event.php?day=$1&q=$2 [QSA]

但是当我print_r($ _ GET); 一切都在day参数中,q为空。 $ _GET ['day']是星期五/事件名称 - 而不是被解析为正确的参数。 我没有找到文档,但我发现了一个类似的SA帖子( 多个参数的.htaccess重写规则 )要求几乎相同的东西。 它看起来像我一样的格式。 但我的工作不正常。

您需要在正则表达式中指定两个捕获组

RewriteRule ^event/((mon|tues|wednes|thurs|fri|satur|sun)day)/(.*)$ event.php?day=$1&q=$3 [QSA]

请注意,事件名称由第3个捕获组匹配。 第二个匹配日前缀; “星期一”,“星期五”等


您可以使第二组更通用,冒着匹配无效“日期名称”的风险

RewriteRule ^event/([adefhimnorstuw]{3,6}day)/(.*)$ event.php?day=$1&q=$2 [QSA]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM