簡體   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