0
我有一個重寫映射內部數百個URL重定向/重寫的列表。大多數URL包含匹配重寫映射中特定條目的查詢字符串。我發現this question關於如何將查詢字符串傳遞到重寫映射。我得到這個工作正常,但現在的問題是,現有的查詢字符串被追加到重寫的URL的末尾。例如:通過重寫映射後,從URL末尾刪除查詢字符串
Expected Rewrite:
/subdir/dir.cfm?categoryID=123 -> https://example.com/subdir/endurl
Actual Rewrite:
https://example.com/subdir/endurl?categoryID=123
Expected Rewrite
/subdir/dir.cfm?videoID=3422424-131FDDFD-234 -> https://example.com/subdir/awesome/stuff
Actual Rewrite:
https://example.com/subdir/awesome/stuff?videoID=3422424-131FDDFD-234
這是重寫規則,我有:
RewriteEngine on
RewriteMap redirects dbm=sdbm:C:\Apache24\conf\redirects.sdbm
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*\.(cfm|cfml)) ${redirects:$1?%{QUERY_STRING}} [NC,R=301,L]
如何刪除重寫後追加到URL查詢字符串?
編輯
我能真正得到這個工作使用此:
RewriteMap redirects dbm=sdbm:C:\Apache24\conf\redirects.sdbm
RewriteCond ${redirects:$1} !=""
RewriteRule ^(.*\.(cfm|cfml)) ${redirects:$1?%{QUERY_STRING}} [NC,C]
RewriteRule (.*) $1? [L,R=301]
但是我不知道,如果有人有更好的方式來完成我在做什麼都知道?我想這可能會中斷,如果我不得不重定向到包含查詢字符串的URL到另一個包含查詢字符串的url。