在 htaccess 中重写一个术语的多次出现
Rewrite multiple occurence of a term in htaccess
我正在尝试将我的 URL 中的所有 &
转换为 &
:
这是我的URL:https://test.com/index.php?option=com_media&task=file.upload&tmpl=component&820470bdbcec556c83a51cb33ca92922=kfp1tif94iuetenuab6hfi5mvd&690012fb504cea7eee8475c0963a8fc4=1&asset=image&format=json
这是我努力实现的目标:
https://test.com/index.php?option=com_media&task=file.upload&tmpl=component&820470bdbcec556c83a51cb33ca92922=kfp1tif94iuetenuab6hfi5mvd&690012fb504cea7eee8475c0963a8fc4=1&asset=image&format=json
到目前为止,我已经尝试了以下规则:
RewriteEngine On
RewriteCond %{QUERY_STRING} (.*)(&)(.*)
RewriteRule ^.*$ %{REQUEST_URI}?%1&%3 [N,L,R=301]
但它只是替换最后一个 &
非常感谢您的帮助
您可以使用这 2 条规则将所有 &
替换为 &
。请注意,最后只会有一个重定向:
RewriteEngine On
# recursively replace & with &
RewriteCond %{QUERY_STRING} (.*)&(.*) [NC]
RewriteRule ^ %{REQUEST_URI}?%1&%2 [N,DPI,E=done:1]
# redirect in the end
RewriteCond %{ENV:done} =1
RewriteCond %{QUERY_STRING} !& [NC]
RewriteRule ^ %{REQUEST_URI} [R=301,NE,L]
我正在尝试将我的 URL 中的所有 &
转换为 &
:
这是我的URL:https://test.com/index.php?option=com_media&task=file.upload&tmpl=component&820470bdbcec556c83a51cb33ca92922=kfp1tif94iuetenuab6hfi5mvd&690012fb504cea7eee8475c0963a8fc4=1&asset=image&format=json
这是我努力实现的目标:
https://test.com/index.php?option=com_media&task=file.upload&tmpl=component&820470bdbcec556c83a51cb33ca92922=kfp1tif94iuetenuab6hfi5mvd&690012fb504cea7eee8475c0963a8fc4=1&asset=image&format=json
到目前为止,我已经尝试了以下规则:
RewriteEngine On
RewriteCond %{QUERY_STRING} (.*)(&)(.*)
RewriteRule ^.*$ %{REQUEST_URI}?%1&%3 [N,L,R=301]
但它只是替换最后一个 &
非常感谢您的帮助
您可以使用这 2 条规则将所有 &
替换为 &
。请注意,最后只会有一个重定向:
RewriteEngine On
# recursively replace & with &
RewriteCond %{QUERY_STRING} (.*)&(.*) [NC]
RewriteRule ^ %{REQUEST_URI}?%1&%2 [N,DPI,E=done:1]
# redirect in the end
RewriteCond %{ENV:done} =1
RewriteCond %{QUERY_STRING} !& [NC]
RewriteRule ^ %{REQUEST_URI} [R=301,NE,L]