使用.htaccess将查询字符串附加到所有URL

时间:2014-12-04 15:18:05

标签: apache .htaccess codeigniter mod-rewrite url-rewriting

出于测试目的,我想在我网站上请求的任何网址上附加一个查询字符串(让我们说测试= true)。

E.g。我想改变

  • example.com
  • example.com/product
  • example.com/search?q=string

  • example.com?的测试=真
  • example.com/product?的测试=真
  • example.com/search?q=string&的测试=真

我试过了:

RewriteRule ^/?(.*) http://example.com/$1?testing=true [L,R,NE]

但它破坏了网站。不是专家。

有什么想法吗?

修改

我应该添加我使用CodeIgniter(PHP),我当前的.htaccess看起来像这样:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

1 个答案:

答案 0 :(得分:4)

您可以使用此新规则:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{QUERY_STRING} !(^|&)testing=true(&|$) [NC]
    RewriteRule ^ %{REQUEST_URI}?testing=true [L,QSA,R]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>