2014-12-01 2 views
0

Я изменил способ, в котором работает мой сайт, но я хочу, чтобы иметь обратную совместимость для сохраненной URL-адресовКак сопрягать и переписать часть строки URL с помощью HTAccess

Если а пользователи уже «играть?» в URL, я хотел бы, чтобы сайт действительно прямо на "играть &"

т.е. http://domain.com/play?v=foo&s=bar становится http://domain.com/play&v=foo&s=bar

Спасибо,

Майк

Edit:

/игра уже обрабатывается как переменная $ z в .htaccess, используя эти правила перезаписи, которые могут повлиять на предлагаемые решения:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^(.+)/?$ index.php?z=$1 [L] 
+1

'' обозначает начало строки запроса так 'играть' никогда не будет действительно в URL, они разные вещи?. Точно так же, используя '& v = foo & s = bar..', не будучи после'? ', Вероятно, не будет работать, если вы не написали что-то обычное, чтобы разобрать его – arco444

+0

@ arco444 - вы правы, папка воспроизведения теперь является переадресацией htaccess of domain.com?z=play, за которыми следуют переменные - однако это была фактическая папка, и я пытаюсь сохранить рабочие гиперссылки для людей, которые их сохранили. Спасибо –

ответ

0

Вы можете использовать этот код в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On 

RewriteCond %{THE_REQUEST} /\?z=(play)(\S*)\s [NC] 
RewriteRule^/%1?%2 [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^(.+)/?$ index.php?z=$1 [L,QSA] 
+0

Это не работает. Я боюсь. Интересно, может быть, из-за того, что игра уже переписана из domain.com?z=play - см. Мой комментарий выше. –

+0

Можете ли вы показать свое правило, которое переписывает URL-адреса игры. – anubhava

+0

Спасибо, я добавил правила перезаписи в исходный вопрос –

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