Ведение строки запроса с помощью mod_rewrite - PullRequest
3 голосов
/ 10 февраля 2011

Я правильно настроил свой веб-сайт для перенаправления каждого фрагмента трафика с

mywonderfulwebsite.com / folder1 / независимо-адрес .php

до

http://folder1.mywonderfulwebsite.com/whatever-url-as-above.php

Вопрос в том, что внешний сайт связывает страницу с параметрами GET, например,

.

mywonderfulwebsite.com / folder1 / что-url.php *? TrackingToken = 1 *

Итак, вопрос в том, как заставить mod_rewrite передать параметры GET в «переписанный» URL, например:

folder1.mywonderfulwebsite.com / что-URL-а-above.php *? TrackingToken = 1 *

В настоящее время я делаю следующее:

<VirtualHost *>
   ServerName mywonderfulwebsite.com
   ServerAlias www.mywonderfulwebsite.com
   DocumentRoot /var/www/mywonderfulwebsite/
   DirectoryIndex index.html

   <Directory />
      allow from all
      Options +FollowSymlinks -Indexes
   </Directory>

   RewriteEngine On
   RewriteRule    ^/folder1/(.*)?$    http://folder1.mywonderfulwebsite.com/$1&%{QUERY_STRING}    [L,R=301]
</VirtualHost>

Этот кусок htaccess ужасен: например, пытается получить доступ к этому URL:

www.mywonderfulwebsite.com / folder1 / atextfile.txt

Перенаправляет на

folder1.mywonderfulwebsite.com / atextfile.txt &

На самом деле, mod_rewrite добавляет завершающий &

Как мне исправить эту проблему? Как правильно перенаправить на правильный (также с GET-параметрами) URL?

Большое спасибо

1 Ответ

6 голосов
/ 10 февраля 2011

Просто добавьте флаг [QSA] к другим вашим флагам, чтобы автоматически включить [Q] uery [S] tring [A].

[L,R=301,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...