Как перенаправить определенные страницы в htaccess и все другие перенаправления на домашнюю страницу?

Как мне 301 конкретную страницу на новый URI домена, а затем все остальные страницы, просто отправьте на домашнюю страницу?

Пример

-- Specific pages I want to move -- 

Redirect 301 /contact.htm https://newdomain.com/contact
Redirect 301 /about.htm https://newdomain.com/about/
Redirect 301 /team.htm https://newdomain.com/team/

-- All other pages, just redirect to the homepage --

Redirect 301 /whatever.htm https://newdomain.com/
Redirect 301 /blah.htm https://newdomain.com/
2
задан 5 March 2018 в 12:57
3 ответа

Чтобы сопоставить все оставшиеся страницы и перенаправить на домашнюю страницу нового сайта, вы Вам нужно будет использовать директиву RedirectMatch (также из mod_alias). Например:

RedirectMatch 301 .* https://newdomain.com/

Директива RedirectMatch использует регулярное выражение для сопоставления URL-адреса запроса, тогда как Redirect использует простое сопоставление префиксов .

Вы не можете использовать директива Redirect , которая соответствует префиксу , потому что в то время как перенаправление, такое как Redirect / https://newdomain.com/, будет соответствовать всем оставшимся URL , он будет перенаправлен на тот же URL-путь на newdomain.com . например. /whatever.htm будет перенаправлять на https://newdomain.com/whatever.htm (который предположительно не существует - хотя это может быть на самом деле хорошо - поскольку массовые перенаправления на главную страницу в любом случае будет рассматриваться Google как soft-404, а настоящий 404 может быть более информативным для пользователей).

Просто добавлю: здесь предполагается, что newdomain.com размещен на другой сервер, иначе вы получите цикл перенаправления.

3
ответ дан 3 December 2019 в 11:26

Вы должны использовать RewriteRule для всех несовпадающих URL-адресов. Вы также можете использовать mod_rewrite для всех предыдущих перенаправлений.

Что-то вроде этого, вероятно, сработает.

RewriteRule ^(.*)?$ /index.html [R=301,L]
-1
ответ дан 3 December 2019 в 11:26

htaccess കാലക്രമത്തിൽ പ്രവർത്തിക്കുന്നു, അതിനാൽ നിങ്ങൾ നിയമങ്ങൾ മുകളിലേക്കും താഴേക്കും എഴുതണം.

അവസാന വരിയേക്കാൾ ആദ്യം നിർദ്ദിഷ്ട പേജുകൾ "ഹോം പേജിലേക്കുള്ള മറ്റ് പേജുകൾ" ആയിരിക്കും റൂൾ‌. htaccess. നിങ്ങൾക്ക് മുഴുവൻ കോഡും ഉപയോഗിക്കാൻ കഴിയും, കാരണം ഇത് ഉപയോഗിക്കാൻ തയ്യാറാണ്.

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

### 301 redirect ###
#old homepage to new homepage
RewriteRule ^$ http://yourhomepage.com/ [L,R=301]

#specific pages to new specific pages
RewriteRule ^contact.html?$ http://yourhomepage.com/contact [L,R=301]
RewriteRule ^index.html?$ http://yourhomepage.com/ [L,R=301]

#other pages to the new website's homepage
RewriteRule ^(.*)$ http://yourhomepage.com/ [L,R=301]
0
ответ дан 3 December 2019 в 11:26

Теги

Похожие вопросы