prosto-chups
ВТР
- Регистрация
- 3 Фев 2009
- Сообщения
- 252
- Реакции
- 167
- Автор темы
- #1
Для тех, кто не хочет ставить тяжелые компоненты вроде sh404sef, ArtioSEF есть способ убрать основные дубли при помощи .htaccess
Во первых, убераем Для просмотра ссылки Войдиили Зарегистрируйсяindex.php
Во вторых убираем:
Для просмотра ссылки Войдиили Зарегистрируйся
Для просмотра ссылки Войдиили Зарегистрируйся
Получаем только:
Для просмотра ссылки Войдиили Зарегистрируйся
Все вместе, вставляем после:
Такие строчки:
Второе касается дублирование ссылок в статьях, ошибемся в адресе, например в место:
Для просмотра ссылки Войдиили Зарегистрируйсяochen-interesnaya-statya.html
напишем:
Для просмотра ссылки Войдиили Зарегистрируйсяochen-interesnaya.html
или:
Для просмотра ссылки Войдиили Зарегистрируйсяochen.html
или вообще:
Для просмотра ссылки Войдиили Зарегистрируйсякакая-то-абракадабра.html
Все равно откроется наша страница!
Все из-за ID (в данном случае 53). Избавляемся от этого.
В файл:
корень_сайта/administrator/components/com_content/config.xml
Вставляем в удобное место (лучше с верху
В админке, в менеджере материалов заходим в настройки (она справа вверху). Во всплывающем окне ищем новый параметр SEF: ID статьи в URL.
К стати, за одно избавитесь от этого ID в URL.
Только все алиасы на сайте должны быть разные, если Вы введете одинаковые алиасы, система Вас не предупредит! Но сайт выдаст 404!
P.S. Если некоторые старые страницы будут отдавать 404 ошибку, поправьте файл:
корень_сайта/components/com_content/router.php
Замените код:
На:
Во первых, убераем Для просмотра ссылки Войди
Код:
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [L,R=301]
Для просмотра ссылки Войди
Для просмотра ссылки Войди
Получаем только:
Для просмотра ссылки Войди
Код:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*).html$
RewriteRule ^(.*[^/])$ $1.html [L,R=301]
Код:
RewriteEngine On
Код:
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [L,R=301]
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*).html$
RewriteRule ^(.*[^/])$ $1.html [L,R=301]
Второе касается дублирование ссылок в статьях, ошибемся в адресе, например в место:
Для просмотра ссылки Войди
напишем:
Для просмотра ссылки Войди
или:
Для просмотра ссылки Войди
или вообще:
Для просмотра ссылки Войди
Все равно откроется наша страница!
Все из-за ID (в данном случае 53). Избавляемся от этого.
В файл:
корень_сайта/administrator/components/com_content/config.xml
Вставляем в удобное место (лучше с верху
Код:
<field name="sef_advanced_link"
type="radio"
default="1"
label="SEF: ID статьи в URL"
description="Показать ID статьи в URL?">
<option value="1">JNO</option>
<option value="0">JYES</option>
</field>
К стати, за одно избавитесь от этого ID в URL.
Только все алиасы на сайте должны быть разные, если Вы введете одинаковые алиасы, система Вас не предупредит! Но сайт выдаст 404!
P.S. Если некоторые старые страницы будут отдавать 404 ошибку, поправьте файл:
корень_сайта/components/com_content/router.php
Замените код:
PHP:
// then we assume it is a category. If they don't we assume it is an article
if ($count === 1) {
Код:
//then we assume it is a category. If they don't we assume it is an article
if ($count === 1 && !$advanced) {