Получение «mywebsite.org/» для разрешения «mywebsite.org/index.php» - PullRequest
2 голосов
/ 21 августа 2009

На моей работе у нас есть различные веб-страницы, которые, по мнению моего босса, оцениваются ниже, чем они должны быть, потому что «mywebsite.org/category/» выглядит как другой URL для поисковых систем, чем «mywebsite.org/category/». index.php ", хотя они показывают один и тот же файл. Я не думаю, что это работает таким образом, но он убежден. Может быть, я ошибаюсь, хотя. У меня два вопроса:

  1. Как мне сделать так, чтобы в адресной строке всех подкатегорий было написано "index.php"?
  2. Действительно ли так работает pagerank?

Ответы [ 7 ]

3 голосов
/ 21 августа 2009
  1. Помимо изменения всех ссылок повсюду, более простым решением является использование правила перезаписи. Убедитесь, что это постоянное перенаправление, иначе Google будет продолжать использовать старую ссылку (без index.php). Как именно это сделать, зависит от вашего веб-сервера, но для Apache HTTPd это выглядит примерно так, как показано ниже.
  2. Да. Или так я слышал. Мало кто знает наверняка. Но Google упоминает это руководство (как "Будьте последовательны"). Обязательно ознакомьтесь со всеми рекомендациями Google для веб-мастеров .

Конфигурация Apache для правила перезаписи:

# in the generic config
LoadModule rewrite_module modules/mod_rewrite.so

# in your virutal host
RewriteEngine On

# redirect everything that ends in a slash to the same, but with index.php added
RewriteRule ^(.*)/$ $1/index.php [R=301,L]

# or the other way around, as suggested
# RewriteRule ^(.*)/index.php$ $1/ [R=301,L]
3 голосов
/ 21 августа 2009

Добавление этого кода в начало каждой страницы также должно работать:

<?php
if (substr($_SERVER['REQUEST_URI'], -1) == '/') {
    $new_request_uri = $_SERVER['REQUEST_URI'].'index.php';
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: '.$new_request_uri);
    exit;
}
?>
1 голос
/ 21 августа 2009

Я согласен со всеми, кто говорит о том, чтобы отказаться от index.php. Пожалуйста, не заставляйте своего посетителя набирать index.php, если not , набрав его, можно получить тот же результат.

Вы не сказали, находитесь ли вы на сервере IIS или Apache . В IIS можно указать, что index.php является страницей по умолчанию, поэтому http: // mywebsite.org/ будет корректно разрешаться без включения index.php.

Я бы сказал, что если вы хотите включить страницу по умолчанию и заставить своих пользователей вводить имя страницы в URL, сделайте имя страницы значимым для поисковой системы и ваших посетителей.

Пример:

http://mywebsite.org/teaching-web-scripting.php 

гораздо более информативен и полезен для SEO-рейтинга, чем просто

http://mywebsite.org/index.php
1 голос
/ 21 августа 2009

Я не уверен, что / category / и /category/index.php считаются двумя URL для seo, но есть большая вероятность, что это повлияет на них, так или иначе. Нет ничего плохого в том, чтобы сделать быстрое изменение, просто чтобы быть уверенным.

Несколько мыслей:

URL-адресов

Вместо того, чтобы добавлять /index.php, вам будет лучше сделать это, чтобы не было index.php ни на одном из них, поскольку ключевое слово 'index', вероятно, не то, что вам нужно.

Вы можете создать скрипт, который будет проверять, заканчивается ли URL-адрес текущей страницы в index.php, и удаляет его, а затем переходит к полученному URL-адресу.

Например, на одном из моих сайтов мне требуется "www." для моего домена (www.domain.com и domain.com считаются двумя URL-адресами для поисковых целей, хотя и не всегда), поэтому у меня есть скрипт, который проверяет каждую страницу и, если нет www., он ее рекламирует и пересылает.

    if (APPLICATION_LIVE) {
        if ( (strtolower($_SERVER["HTTP_HOST"]) != "www.domain.com") ) {
            header("HTTP/1.1 301 Moved Permanently"); // Recognized by search engines and may count the link toward the correct URL...
            header("Location: " . 'www.domain.com/'.$_SERVER["REQUEST_URI"] );
            exit();
        }
    }

Вы можете сделать это, чтобы сделать то, что вам нужно.

Таким образом, если сканер заходит по неправильному URL-адресу, он будет уведомлен о том, что он был заменен на правильный URL-адрес. Если человек посещает неправильный URL-адрес, он будет перенаправлен на правильный URL-адрес (большинство не заметят), а затем, если он скопирует URL-адрес из браузера, чтобы отправить кого-либо или ссылку на эту страницу, он в конечном итоге будет ссылаться на правильный URL для этой страницы.

ССЫЛКИ НА ССЫЛКИ

То, как другие страницы ссылаются на ваши страницы, более важно для seo. Убедитесь, что все ваши ссылки на сайте используют правильный URL (без /index.php), и что если у вас есть функция «ссылка на эту страницу», она не включает часть /index.php. Вы не можете контролировать, как все ссылаются на вас, но вы можете взять это под свой контроль, как со сценарием в пункте 1.

URL ROUTING

Вы также можете рассмотреть возможность использования какой-либо инфраструктуры или автономной схемы перенаправления URL-адресов. Это может сделать так, чтобы было больше ключевых слов и т. Д.

См. Здесь пример: http://docs.kohanaphp.com/general/routing

1 голос
/ 21 августа 2009

Простое решение заключается в добавлении тега <head>:

<link rel="canonical" href="http://mywebsite.org/category/" />

Тогда, независимо от того, на какой странице находится поисковая система, она будет знать, что это просто другое представление /category/

А на ваш второй вопрос - да, это может повлиять на ваши результаты, если Google сочтет вас спамом. Если бы это было не так, они бы не добавили поддержку rel="canonical". Хотя я бы не удивился, если бы они относились к somedir/index.* так же, как somedir/

1 голос
/ 21 августа 2009
  1. Вы не сообщаете нам, используете ли вы обычный PHP или какой-либо другой фреймворк, но для PHP, вероятно, вам просто нужно изменить все ссылки на вашем сайте на «mywebsite.org/category/index» PHP».

  2. Я думаю, что это может повлиять на рейтинг вашей поисковой системы. Однако вам лучше использовать только «mywebsite.org/category», а не добавлять «index.php» к каждому.

Суть в том, что вам нужно убедиться, что все ваши ссылки на вашем сайте используют одну или другую. То, что в действительности отображается в адресной строке, неважно.

0 голосов
/ 21 августа 2009

Возможно, вы захотите взглянуть на файлы robots.txt? Не совсем лучшее решение, но вы должны быть в состоянии реализовать что-то работающее с ними ...

...