mod_rewrite добавить строку к запросу - PullRequest
1 голос
/ 09 января 2012

Я пытаюсь преобразовать этот URL:

http://localhost/?q=foo&s=search

на этом:

http://localhost/?q=+foo&s=search (i add a plus sign before the user query)

Я пытался с:

RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
RewriteRule ^(.*)$ /?q=\+%1 [R=301,L,NE]

Но это генерирует:

http://localhost/?q=+++++++++++++++++++++foo

Любой совет, как добавить знак плюс перед запросом?

1 Ответ

0 голосов
/ 09 января 2012

Два быстрых / простых варианта:

  1. Добавьте + в бэкэнд (PHP: $query = '+' . $_GET['q'];)
  2. Добавить параметр, указывающий перенаправление и избегающий перенаправления.

    # The example is untested, but the idea is to add an extra 
    # query parameter (rw=1). When the redirect comes back through, 
    # the redirect is not applied, as the '+' as already been 
    # put on the beginning.
    
    RewriteCond %{QUERY_STRING} !&rw=1$ [NC]
    RewriteCond %{QUERY_STRING} ^q=(.*)$ [NC]
    RewriteRule ^(.*)$ /?q=\+%1&rw=1 [R=301,L,NE]
    
...