У меня есть некоторый код перезаписи в моем файле .htaccess. Я переместил статический HTML-сайт в WordPress и мне нужно следующее:
Я не могу заставить либо работать, я попробовал все различные методы, которые были предложены. Домен.com.au на http://www.domain.com.au работает для всех страниц, кроме домашней страницы, например http://domain.com.au/ourteam перенаправляет на http://www.domain.com.au/ourteam
Но он не будет перенаправлять для рута (домашней страницы).
Также я получаю страницу не найдена ошибка для перенаправления index.html.
Мой файл .htaccess:
Options +FollowSymlinks RewriteEngine on ### re-direct index.html to root RewriteCond %{THE_REQUEST} ^.*\/index\.html RewriteRule ^(.*)index\.html$ /$1 [R=301,L] ### non www to www RewriteCond %{HTTP_HOST} ^domain\.com\.au$ [NC] RewriteRule ^(.*)$ http://www.domain.com.au/$1 [R=301,L] redirect 301 /team.html http://www.domain.com.au/our-team/ redirect 301 /contact.html http://www.domain.com.au/contact-us/
Кто-нибудь, помогите - я рву на себе волосы!
Извините, у меня просто возникли проблемы с этим и я обнаружил: Использование перенаправления htaccess to 301, не работает
Очевидно, вы должны поместить перенаправления над #begin wordpress, поскольку apache обрабатывает перезаписи и никогда не попадает в ваши перенаправления.
Поскольку вы используете rewrite правила, вам нужно настроить 301-е в формате перезаписи, это единственный способ, которым он будет работать.
rewrite
RewriteRule ^/team.html$ http://www.domain.com.au/our-team/ [R=301,L]
Попробуйте:
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine on ### non www to www RewriteCond %{HTTP_HOST} ^domain.com.au [NC] RewriteRule ^(.*)$ http://www.domain.com.au/$1 [R=301,L] ### re-direct index.html to root RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/ RewriteRule ^index\.html$ http://www.domain.com.au/ [R=301,L] redirect 301 /team.html http://www.domain.com.au/our-team/ redirect 301 /contact.html http://www.domain.com.au/contact-us/ # WrodPress rules begin here... </IfModule>