2013-07-01 3 views
2

Пытаюсь сделать URL:Перенаправление когда две строки совпадают

www.google.com/forum.php?fid=5 

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

www.google.com/new.php?fid=5 

Но и это нужно, чтобы держать все остальное нетронутым, потому что, например, ссылка может быть:

www.google.com/forum.php?fid=5&sortby=asc 

И нужно sortby часть, которая будет там после перенаправления.

Что редирект нужно сделать, это посмотреть на forumdisplay.php и fid=6 и когда оба находятся в том же URL он перенаправляет blog.php и удаляет fid=6, но сохраняет любые другие параметры там.

Я искал и нашел, как это сделать, с одной строкой, но не с двумя.

Кроме того, в чем разница между переадресацией и переписыванием?

Это связано с программным обеспечением MyBB. Я сделал отдельный php-файл, который использует forumdisplay, но с новым именем.

+0

[Добро пожаловать на SO, не забудьте взять ** SO Tour ** это поможет вы о том, как наилучшим образом использовать SO] (http://stackoverflow.com/about) – Prix

+0

Спасибо. Посмотрел, как делать разметки, но похоже, что сотрудники избили меня, чтобы редактировать мой пост. – iHydra

+0

Отличный +1 за то, что уделил вам время, чтобы прочитать тур очень полезен, а также поможет вам получить лучшие ответы. – Prix

ответ

0

Использование mod_rewrite вы могли бы использовать условие, чтобы проверить идентификатор и захватить то, что приходит после того, если что-нибудь:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/forumdisplay.php 
RewriteCond %{QUERY_STRING} ^fid=6(&.*|.*) 
RewriteRule ^.*$ /blog.php?%1 [R=301,L] 
+0

Что делать, если fid должен был быть 6, чтобы перенаправление вступило в силу? Я заменил бы (. *) На 6? И это также сохранит какие-либо параметры там, где раньше? Благодарю. – iHydra

+0

@iHydra Тогда вы можете использовать условие строки запроса, чтобы написать пример. – Prix

+0

Ах. Понимаю. Попробуй, когда я получу на своем компьютере. (На мобильном телефоне) Спасибо. – iHydra

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