2013-02-25 3 views
0

Я пытаюсь использовать mod_rewrite для перенаправления пользователей сохраняя многократную строку запроса и создание страницы редиректаURL Rewrite шпагатом в .htaccess

Для примера, Если пользователь открывает

http://localhost/url/url/http://www.google.com/contacts/?user=abc&stackoverflow=great&google=facebook 

тогда он принятое до

http://localhost/url/url.php?redirect=http://www.google.com/contacts/?user=abc&stackoverflow=great&google=facebook 

Существует вторичная проблема, связанная с тем, что URL-адрес должен быть закодирован, а затем перенаправлен! Если URL-адрес не закодирован, строка (stackoverflow = great) не будет частью строки перенаправления url.php

Я пробовал много решений, затем пришел для stackoverflow! Я попытался следующий код в следующий файл

http://localhost/url/.htaccess 

RewriteRule ^url/([^/])$ url.php?redirect=$1 [QSA,L] 

но результат локальный/URL/url.php? Перенаправлять = HTTP только

+0

Так что _have_ вы пробовали до сих пор? Мы помогаем вам решить вашу проблему, если вы не публикуете свои попытки. – arkascha

+0

Кодирование того, что «внутренний» URL-адрес выходит за рамки модуля перезаписи. Это должно быть сделано тем, что генерирует этот url. – arkascha

ответ

0

Ваша установка не будет работать с незакодированной внутренней URL, так что " ответ "может иметь только временный характер. Но это может стать отправной точкой:

RewriteEngine on 
RewriteRule ^/url/url/(.*)$ /url/url.php?redirect=$1 [L,QSA] 

Интересно, однако, если этот фрагмент /url/url действительно предназначен (далее «URL два там внутри).

Обратите внимание, что точное содержание правила также зависит от , где вы хотите определить это правило. Синтаксис отличается от того, используете ли вы файлы центрального сервера (указанные) или файлы стиля .htaccess (как второй вариант и более сложный).

+0

http пренебрегает ... http: // localhost/url/url/http: //www.google.com/ отправляется по адресу http: //localhost/url/redirect.php? Redirect = www.google. com – user1809599

+0

Как уже говорилось: это не может работать без кодированного «внутреннего» url. Просто потому, что первый URL-адрес, который вы выдаете, является незаконным, он нарушает правила синтаксиса. Так что до клиента (браузера) зависит от _guess_, что может иметь смысл. Кодируйте внутренний URL-адрес! – arkascha

+0

И, честно говоря, я _doubt_ это вызывает скрипт 'redirect.php', вы действительно попробовали это? – arkascha

0

Попробуйте

RewriteEngine on 
Redirect ^url/url/(.*)$ url/url.php?redirect=$1 

Основной перенаправлять systax,

редирект доступ-файл URL-к-идти к