Apache redirectMatch,添加查询字符串

问题描述

我正在从子文件重定向到子域。这工作正常,但我想在我的 url 末尾附加一个查询字符串来跟踪有多少人被重定向

RewriteRule ^/my-folder/(.*)$ https://subdomain.example.com/?ref=my_ref [R=302,L]

以上应该根据 this article 工作,但事实并非如此。

它只是将我重定向https://subdomain.example.com/

如何在重定向期间添加 ?ref=my_ref

编辑: 完整的 .htaccess

#to remove old /forum/topic and keep /topic
RewriteRule ^forum/topic/(.*)$ /topic/$1 [L,NC,R=301]

### Rewrites Engine
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) /404error.PHP [L,NC]

RewriteRule ^/my-folder/(.*)/?$ https://subdomain.example.com/?ref=$1 [R=302,L,NC]      

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.PHP [L]
</IfModule>

解决方法

根据您展示的样品,您可以尝试以下操作吗?我希望你正在寻找这个。请先清除浏览器缓存,然后再测试您的网址。

### Rewrites Engine
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) /404error.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^my-folder/(.*)/?$ https://subdomain.example.com/?ref=your_string [R=302,L,NC]      

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>