301 Прямой переход от старых папок сайта к новой структуре сайта - PullRequest
0 голосов
/ 04 июня 2011

Заранее спасибо.

Я переделал свой сайт с новыми структурами папок

Старая структура сайта: www.domain.com/folder/file.aspx

Новая структура сайта: www.domain.us/folder/file.php

Обратите внимание на новый TLD. У меня есть около 20 папок, которые я хочу перенаправить. Можно ли сделать это одним файлом или мне нужно сделать 301 для каждой отдельной папки от старого сайта до нового? Каков наилучший способ справиться с этим?

Опять же, Заранее спасибо

Ответы [ 3 ]

1 голос
/ 04 июня 2011

Файл .htaccess в каталоге имеет приоритет над любым файлом .htaccess в родительских каталогах. Итак, если у вас уже есть файл .htaccess в каждом из ваших подкаталогов, то помещать файл .htaccess в корневой каталог не имеет смысла.

Удалите файлы .htaccess из каждого из ваших подкаталогов, которые вы хотите перенаправить, и обновите файл .htaccess в корневой папке. Вы, вероятно, должны поставить 20 правил переписывания, как это. Имейте в виду, что удаление .htaccecss из подкаталогов уберет все ограничения, которые вы [возможно] наложили на эту папку.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com
RewriteRule ^folder/file\.aspx$ http://domain.us/folder/file.php [R=301,NC,L]
RewriteRule ^folder2/file\.aspx$ http://domain.us/folder2/file.php [R=301,NC,L]

301 для постоянного перенаправления, NC для No Case, L для последнего правила для обработки, если совпадает

OR

Обновите файл .htaccess в каждом каталоге, который вы хотите перенаправить

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com
RewriteRule ^(.*)\.aspx$ http://domain.us/folder/$1.php [R=301,NC,L]

#the following might also do; just test it out
#RedirectPermanent (.*)\.aspx$ http://domain.us/folder/$1.php

Итак, в зависимости от вашей ситуации, вы выбираете один. Я бы выбрал первый вариант, чтобы все перенаправления были в одном месте. Вы всегда можете перенести ограничения из подкаталогов в .htaccess в root .htaccess.

1 голос
/ 04 июня 2011

Для этого вы должны использовать mod_rewrite. Поместите это в файл .htaccess в папке public_html вашего FTP:

RewriteEngine On
RewriteRule ^([^.]+)\.aspx$ $1.php [L]

Это должно гарантировать, что когда кто-то звонит Banana.aspx , он увидит Banana.php .

0 голосов
/ 04 июня 2011

Если вы используете 301 PHP header () redirect, то, боюсь, это может быть сделано только один за другим.

Но если вы используете mod_rewrite, чтобы обработать это для вас, то вам стоит взглянуть на этот источник: http://www.gnc -web-creations.com / 301-redirect.htm

...