2010-08-19 2 views
27

Я хочу перенаправить весь мой старый запрос домена в мой новый домен, используя файл htaccess. Ниже я использую, но это не работает, если страница не находится на новом сайте. Например, google index about.htm на старом сайте, но на новом сайте его не существует. Я бы хотел, чтобы он просто вошел в корень во всех случаях. Я знаю, что это не идеально для seo, но я не хочу никаких 404-х. Какие-либо предложения?htaccess перенаправить все страницы на одну страницу

Redirect 301/http://www.thenewdomain.com/ 
+1

возможно дубликат [.htaccess 301 редирект всех страниц на старом домене на одной странице на новом домене] (http://stackoverflow.com/questions/15057146/htaccess-301-redirect-all-pages-on-old-domain-to-one-page-on-new-domain) – mattdm

ответ

20

Вы пытаетесь завести посетителей на old.com/about.htm, чтобы перейти на new.com/about.htm? Если да, то вы можете сделать это с помощью правила mod_rewrite в .htaccess:

RewriteEngine on

RewriteRule ^(.*)$ http://www.thenewdomain.com/$1 [R=permanent,L]

+0

нет, я просто хочу, чтобы old.com/about.htm перешел на old.com и затем, если возможно, удалите файл /about.htm, чтобы он просто перешел на old.com. –

+2

Просто удалите '$ 1', и вы должны быть хорошими! –

11

Это направит все от старого хозяина к корню нового хозяина:

RewriteEngine on 
RewriteCond %{http_host} ^www.old.com [NC,OR] 
RewriteCond %{http_host} ^old.com [NC] 
RewriteRule ^(.*)$ http://www.thenewdomain.org/ [R=301,NC,L] 
+1

FYI: флаг [NC] на последней строке бесполезен. –

+0

как насчет, перенаправить все, кроме тех из '/ admin'? поэтому панель управления может быть достигнута? –

+0

@FranciscoCorralesMorales - чтобы сделать это, вы можете добавить эту строку: RewriteCond% {REQUEST_URI}/администратор/$ в RewriteCond до RewriteRule линии!. –

49

Если ваша цель - перенаправить все страницы на одну страницу обслуживания (так как название может предложить и это), используйте:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !/maintenance.php$ 
RewriteCond %{REMOTE_HOST} !^000\.000\.000\.000 
RewriteRule $ /maintenance.php [R=302,L] 

Где 000 000 000 000 должна быть заменена your ip adress.

Источник:

http://www.techiecorner.com/97/redirect-to-maintenance-page-during-upgrade-using-htaccess/

+0

как насчет, перенаправить все, кроме тех из '/ admin'? поэтому панель управления может быть достигнута? –

+0

Этот метод блокирует любые ресурсы, используемые на странице обслуживания. Попробуйте добавить это после второй строки: 'RewriteCond% {REQUEST_URI}! \. (Jpe? G? | Png | gif | js | css | woff | ttf | ico) [NC]' –

3
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC] 
RewriteRule ^(.*)$ "http://www.thenewdomain.com/" [R=301,L] 
Смежные вопросы