2011-02-10 4 views
3

Я правильно настроил мой сайт, чтобы изменить маршрут каждую часть трафика отСохранение строки запроса с mod_rewrite

mywonderfulwebsite.com/ folder1/независимо-гиперссылка .php

к

HTTP: // folder1 .mywonderfulwebsite.com/независимо-URL-как-выше .php

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

mywonderfulwebsite.com/folder1/whatever-url.php* trackingToken = 1 *

Итак, вопрос? как сделать проход mod_rewrite в параметрах Добраться до "переписан" URL, как это:?

folder1.mywonderfulwebsite.com/whatever-url-as-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 ужасно, например, пытается получить доступ к этой ссылке:

www.mywonderfulwebsite.com/folder1/ atextfile. TXT

Перенаправление

folder1.mywonderfulwebsite.com/ atextfile.txt &

В самом деле, mod_rewrite присоединяет роспускного &

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

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

+0

Часть из вопросительного знака on называется ** строкой запроса **, ** GET ** является методом HTTP. –

+0

Вы правы, слишком много $ _GET в php :) спасибо за точность – Array

+0

возможный дубликат [переписывание дополнительной строки запроса с помощью mod_rewrite] (http://stackoverflow.com/questions/4713760/rewriting-an- extra-query-string-with-mod-rewrite) – outis

ответ

5

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

[L,R=301,QSA] 
+0

Большое вам спасибо, вы спасли меня от головной боли ... – Array

+0

Добро пожаловать, пожалуйста, отметьте мой ответ как принятый, если он сработает для вас –

+0

Я забыл спросить вас и одну вещь: В настоящее время я также пытаюсь перенаправить трафик с domain.com на www.domain.ком, таким образом: (. *) RewriteEngine На RewriteCond% {HTTP_HOST}^домен \ .com RewriteRule http://www.domain.it/$1 [L, R = 301, QSA] Но, если я попытаюсь получить доступ к http://domain.com/ (с завершающим косой чертой), mod_rewrite отправит меня на http://www.domain.com// (с двумя трейлинг-косами). Как избежать этой проблемы, также? – Array

Смежные вопросы