Как заставить http code 301 перенаправление и 404 Errorhandling работать

0

У меня есть установка Wordpress на сервере с двумя доменами, указывающими на нее. Планируется создать оптимизированную для SEO переадресацию, включая 301-перенаправление и 404 обработку ошибок. Я использую 3 файла: apache virtua-host,.htaccess и php-skript (страница ошибки для http status code404

Vhost (Apache)

<VirtualHost xx.xxx.xxx.xx:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /path/to/mydomain-on-filesystem

     <Directory /path/to/mydomain-on-filesystem>
      Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
     </Directory>

</VirtualHost>

.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.mydomain-to-be-redirected\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain-with-content.com/$1 [R=301,L]

ErrorDocument 404 /404.php 

.htaccess и 404.php расположены /path/to/mydomain-on-filesystem.

У меня проблемы с обработкой RewriteRule (301 redirect) и ErrorDocument (обработка ошибок 404). Как только RewriteRule будет на месте, я получаю "301 перемещение навсегда" при вводе любого URL-адреса. Он полностью игнорирует код статуса http 404. К сожалению, это приводит к тому, что Google (насколько я слышал) и другие поисковые системы уменьшают рейтинг страниц (например, дублирующийся контент).

Что мне здесь не хватает? Любая помощь приветствуется.

Ждем вас от вас, ребята :-)

Большое спасибо!

SD

  • 0
    Вы никогда не получите ошибку 404, если перенаправите все на "mydomain-with-content.com"
  • 0
    Привет Джон Лин! Я новичок в этой теме. Можете ли вы дать мне совет или пример? Большое спасибо!
Теги:
.htaccess
redirect
mod-rewrite

1 ответ

0

Правила перезаписи:

RewriteCond %{HTTP_HOST} ^www\.mydomain-to-be-redirected\.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain-with-content.com/$1 [R=301,L]

перенаправляет все с www.mydomain-to-be-redirected.com на www.mydomain-with-content.com. Все, что ниже этого, не будет использоваться.

В этом случае www.mydomain-with-content.com вернет 404, если страница там отсутствует, что похоже на то, что вы хотели бы сделать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню