.htaccess中的默认查询字符串

.htaccess中的默认查询字符串,.htaccess,url-rewriting,.htaccess,Url Rewriting,有点奇怪,但我想在我所有的URL上设置一个查询字符串。如果参数未设置(或为空),则我希望重定向以包含默认值 例如: example.com would need to requrect to example.com?param=a example.com?param would also need to redirect to example.com?param=a 如果参数已设置且是已知值列表的一部分,则应正常进行: example.com?param=(a|b|c|d) would go

有点奇怪,但我想在我所有的URL上设置一个查询字符串。如果参数未设置(或为空),则我希望重定向以包含默认值

例如:

example.com would need to requrect to example.com?param=a

example.com?param would also need to redirect to example.com?param=a
如果参数已设置且是已知值列表的一部分,则应正常进行:

example.com?param=(a|b|c|d) would go to the respective page a,b,c or d
站点的某些页面使用其他参数进行排序和分页,因此规则不能假定这是唯一的查询字符串

我试过几次,但总是陷入重定向循环。这正试图设置默认参数:

RewriteCond %{QUERY_STRING} !(^|&)param=(a|b|c|d)($|&)
RewriteRule ^(.*)$ /index.php?rq=$1&param=a [L,QSA]
CMS的主要重写规则是:

RewriteCond %{REQUEST_URI} !^\/*(index\.php|blog|admin\/assets|site\/assets|robots.txt|sitemap(|\-[0-9]+)\.xml|products.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php?rq=$1 [L,QSA]

任何帮助都会很好

谢谢,快到了。我必须修改第一条规则以读取RewriteRule^(.*)$/index.php?rq=$1&%{QUERY_STRING}¶m=a[L]如果未设置参数,我需要它将其附加到地址栏中的URL。这可能吗?将[L]更改为[L,R=301](尽管测试时使用302)。谢谢,这是在添加参数,但我需要隐藏?rq=部分。基本上,我希望它重写URL,但只是附加?/¶m=部分。这可能吗?你应该把它添加到我提供的规则中。你能告诉我什么东西没用吗?(因为你必须修改它)我的错误-你的代码很好。我遇到的问题是,我一直都需要URL中的参数——它需要将自身(一旦设置)附加到页面上的每个链接,以便每次都传递该值。我想我应该提出一个新问题。谢谢你的帮助谢谢,快到了。我必须修改第一条规则以读取RewriteRule^(.*)$/index.php?rq=$1&%{QUERY_STRING}¶m=a[L]如果未设置参数,我需要它将其附加到地址栏中的URL。这可能吗?将[L]更改为[L,R=301](尽管测试时使用302)。谢谢,这是在添加参数,但我需要隐藏?rq=部分。基本上,我希望它重写URL,但只是附加?/¶m=部分。这可能吗?你应该把它添加到我提供的规则中。你能告诉我什么东西没用吗?(因为你必须修改它)我的错误-你的代码很好。我遇到的问题是,我一直都需要URL中的参数——它需要将自身(一旦设置)附加到页面上的每个链接,以便每次都传递该值。我想我应该提出一个新问题。谢谢你的帮助
RewriteCond %{QUERY_STRING} !(^|&)param=(a|b|c|d)($|&)
RewriteCond %{REQUEST_URI} !^\/*(index\.php|blog|admin\/assets|site\/assets|robots.txt|sitemap(|\-[0-9]+)\.xml|products.xml|favicon\.ico)
RewriteRule ^(.*)$ $1?%{QUERY_STRING}&param=a [L]

RewriteCond %{REQUEST_URI} !^\/*(index\.php|blog|admin\/assets|site\/assets|robots.txt|sitemap(|\-[0-9]+)\.xml|products.xml|favicon\.ico)
RewriteRule ^(.*)$ /index.php?rq=$1 [L,QSA]