簡體   English   中英

htaccess mod_rewrite多個查詢字符串的路徑

[英]htaccess mod_rewrite multiple paths to query string

我一直在搜索,但是找不到我想要的東西。 我正在嘗試找到一種優雅的方式,通過htaccess和mod_rewrite將URL路徑重定向到查詢字符串。

問題在於該路徑沒有固定的次要路徑,並且可能很大。

http://example.com/sub1/sub2/sub3/sub4/sub5/sub6/sub7 ...

目前,我在htaccess中只有大量規則可以捕獲這些規則...

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/? /index.php?sub[]=$1&sub[]=$2&sub[]=$3&sub[]=$4&sub[]=$5 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/? /index.php?sub[]=$1&sub[]=$2&sub[]=$3&sub[]=$4 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/? /index.php?sub[]=$1&sub[]=$2&sub[]=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/? /index.php?sub[]=$1&sub[]=$2 [QSA,L]
RewriteRule ^([^/]+)/? /index.php?sub[]=$1 [QSA,L]

...但是還有更多,有人知道一種自動將其解析為查詢字符串的方法嗎?

如果參數名稱始終相同,則可以僅依靠重寫引擎來循環遍歷它們:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /index.php?sub[]=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.+)$ /$2?sub[]=$1 [L,QSA]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM