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

.htaccess代码QSA使用多个查询参数重写,.htaccess,.htaccess,我有.htaccess设置来重定向事件页 /计划/事件/?q=此处的事件名称 到 /此处的计划/事件/事件名称 RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^event/(.*)$ event.php?q=$1 [QSA] 但是,我需要为当天添加第二个查询参数。我想要的新URL是:/schedule/event/friday/event name 我试着把它改写成这样: Re

我有.htaccess设置来重定向事件页 /计划/事件/?q=此处的事件名称 到 /此处的计划/事件/事件名称

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^event/(.*)$ event.php?q=$1 [QSA]
但是,我需要为当天添加第二个查询参数。我想要的新URL是:/schedule/event/friday/event name 我试着把它改写成这样:

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

但是当我打印r($得到);所有内容都在day参数中,q为空$_GET['day']是此处的星期五/事件名称,而不是解析为正确的参数。我没有找到文档,但我发现一个类似的SA post()要求提供几乎相同的内容。在我看来,格式是一样的。但是我的捕获组工作不正常。

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

RewriteRule ^event/((mon|tues|wednes|thurs|fri|satur|sun)day)/(.*)$ event.php?day=$1&q=$3 [QSA]
注意,事件名称由第三个捕获组匹配。第二个匹配日期前缀;“周一”、“周二”等


您可以使第二组更通用,但有可能匹配无效的“日名称”


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

RewriteRule ^event/((mon|tues|wednes|thurs|fri|satur|sun)day)/(.*)$ event.php?day=$1&q=$3 [QSA]
注意,事件名称由第三个捕获组匹配。第二个匹配日期前缀;“周一”、“周二”等


您可以使第二组更通用,但有可能匹配无效的“日名称”


非常感谢你。第一种解决方案有效。我对.htaccess重写还是相当陌生的,所以语法大部分是有意义的。现在我知道要寻找什么了,我必须阅读更多关于捕获组的内容!非常感谢你。第一种解决方案有效。我对.htaccess重写还是相当陌生的,所以语法大部分是有意义的。现在我知道要寻找什么了,我必须阅读更多关于捕获组的内容!