我有.htaccess设置来重定向事件页面 /日程安排/事件/ Q =事件名称 - 在这里 至 /日程表/事件/事件名称 - 在这里
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^event/(.*)$ event.php?q=$1 [QSA]
但是,我需要为当天添加第二个查询参数。我想要的新网址是:/ schedule / event / friday / event-name- here 我尝试重写它:
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 rewrite rules for multiple parameters)要求几乎相同的东西。它看起来像我一样的格式。但我的工作不正常。
答案 0 :(得分:0)
您需要在正则表达式中指定两个捕获组
RewriteRule ^event/((mon|tues|wednes|thurs|fri|satur|sun)day)/(.*)$ event.php?day=$1&q=$3 [QSA]
请注意,事件名称与第三个捕获组匹配。第二个匹配日前缀; “mon”,“tues”等。
您可以使第二组更加通用,冒着匹配无效“日期名称”的风险
RewriteRule ^event/([adefhimnorstuw]{3,6}day)/(.*)$ event.php?day=$1&q=$2 [QSA]