2011-12-25 1 views
0

У моего клиента был блог Wordpress на странице "domain.com/blog" с структурой константы "? P = page-id". Я архивировал этот сайт на «v1.domain.com». все работает нормально.301 redirect старые индексированные URL-адреса

Я создаю новый блог Wordpress на странице "domain.com/blog" с постоянной структурой "/ year/month/postname". все равно, все хорошо.

Я сделал поиск в Google и нашел старые сообщения в блоге. они ссылаются на «domain.com/blog?p=page-id», и когда single.php пытается открыть эти файлы, цикл сходит с ума.

вот пример: http://davidapuzzo.com/blog/?p=1821

если добавить «v1» в начале домена, вы будете видеть, где пост на самом деле:

http://v1.davidapuzzo.com/blog/?p=1821

Я понимаю, это будет быть перенаправлением 301, которое находит все URL-адреса «http://domain.com/blog?p=page-id» и перенаправляет/добавляет их с помощью «v1.domain.com ...»? Я просто не знаю, как написать выражение reg и где его добавить в файл wordpress .htaccess.

Я включил мой WordPress .htaccess ниже:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

Мой клиент имеет некоторые глубокие проиндексированных URL, как вы можете видеть выше Коннектикут метеоролог/Meterologist. этот пост является 6-м результатом на первой странице результатов поиска для его имени.

Новый сайт был запущен сегодня, и любая помощь будет принята с благодарностью. Благодаря!

+0

Что именно вы пытаетесь сделать? Перенаправить что-либо с **? P = ### ** в домен v1? –

+0

точно, jon. Обновленный код virendra ниже решил проблему. есть ли другое решение, которое вы бы предложили? Я не уверен, как можно улучшить код? – jpann

ответ

2

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

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^davidapuzzo.com 
RewriteCond %{QUERY_STRING} ^p= [NC] 
RewriteRule blog/(.*)$ http://v1.davidapuzzo.com/blog/ [L,R=301] 

Чтобы перенаправить все URL-адрес, содержащие строку запроса на поддомен использовать следующее. Это перенаправит все URL-адреса, содержащие «?».

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^davidapuzzo.com 
RewriteCond %{QUERY_STRING} . 
RewriteRule blog/(.*)$ http://v1.davidapuzzo.com/blog/ [L,R=301] 
+0

Я обновил код. – Virendra

+0

Я только что понял, в коде есть ошибка, позвольте мне переписать правило до тех пор, пока вы не закомментируете эти правила htaccess. – Virendra

+0

Я обновил код сейчас, и это должно сработать. – Virendra