Перенаправление /? P = xxx WordPress URL - PullRequest
1 голос
/ 30 ноября 2009

Мне нужно перенаправить один URL-адрес Wordpress, отформатированный следующим образом: www.bluewidgets.com/?p=123 на чистый URL-адрес в другом домене. Как я могу сделать это через .htaccess? Все учебники, которые я видел, говорят, что мне нужно указать другую часть URL, например index.php, перед строкой запроса, но у моего URL ее нет - это просто домен, а затем строка запроса.

Ответы [ 4 ]

1 голос
/ 02 декабря 2009

Попробуйте это правило:

RewriteCond %{QUERY_STRING} =p=123
RewriteRule ^$ /foo/bar? [L,R=301]

Или используя REQUEST_URI :

RewriteCond %{REQUEST_URI} =/?p=123
RewriteRule ^$ /foo/bar? [L,R=301]

Обратите внимание, что шаблоны RewriteCond начинаются с =, который идентифицирует лексикографическое сравнение вместо теста регулярных выражений. Кроме того, пустой запрос в замене (обозначается …?), который удалит первоначально запрошенный запрос.

1 голос
/ 30 ноября 2009

Не могли бы вы просто добавить в header.php, прежде всего:

<?php
if ($_GET['p'] == '123') {
    header('Location:http://www.yourotherdomain.com');
exit;
}
?>

Я делал нечто подобное в прошлом. Это может быть не красиво, но это работает - мне было бы интересно услышать от более опытных PHP-разработчиков, является ли это законной тактикой.

0 голосов
/ 30 ноября 2009

Стандартное перенаправление 301 имеет формат (и будет в домене 1):

Redirect 301 /filename.php http://domain2.com/filename.php

но я только что попробовал это с постоянными ссылками по умолчанию, и это не сработало.

В домене 1 вы можете переписать URL-адрес стандартным блоком переписывания wordpress, а затем сразу же перенаправить его в домен domain2. Грязно, но это может сработать.

0 голосов
/ 30 ноября 2009

Разве WordPress уже не имеет встроенной URL-адреса? Просто из любопытства, зачем тебе это делать.

Помимо этого, да, вы упоминаете, как вы делаете это через htaccess. Вы столкнулись с проблемой с этим методом?

...