Как изменить URL с помощью xoRewriteModule:
Важно!
Перед тем, как вы начнете установку:
- сделайте backup базы данных и всего сайта;
- поверьте, что у вашего Apache mod_rewrite enabled, так это необходимо.
Файлы
Скачайте модуль отсюда кликнув на "Téléchargez maintenant". Разархивируйте его.
Укажите модули, чьи URL вы хотите изменить
Давайте условимся, что вы хотите изменить URL адреса модуля "tags" с ваш_сайт/modules/tags/ на ваш_сайт/tags/. Вам нужно изменить файл /configs/xoRewriteModule.ini.php. Замените:
[xoRewriteModule]
news="actualite"
newbb="forum"
wfdownloads="telechargement"
smartpartner="partenaires"
sitemap="plandusite"
formulaire="contact"
rss="filrss"
extgallery="galerie"
на
[xoRewriteModule]
tag="tags"
* news="actualite"
* newbb="forum"
* wfdownloads="telechargement"
* smartpartner="partenaires"
* sitemap="plandusite"
* formulaire="contact"
* rss="filrss"
* extgallery="galerie"
строчка tag="tags" определяет новый URL tag модуля. Ставя * перед остальными модулями, мы оставляем их URL неизмененными. Если вы в последствие захотите изменить и их, просто отредактируйте этот файл снова, убрав значок * перед нужными модулями. Но в этом примере мы меняем толкько URL модуля tags.
Загрузите файлы на сервер
Загрузите файлы по FTP. Нужно загрузить три папки в самый корень вашего сайта. Это не перепишет существующие папки, а всего лишь добавит необходимые файлы.
Измените yoursite/header.php
Измените файл ваш_сайт/header.php, добавив следующие строчки:
//xoRewritemodule
$xoopsTpl =& $xoTheme->template;
$xoopsTpl->load_filter('output', 'xoRewriteModule');
Я добавил эти строчки прямо перед
$xoopsLogger->stopTime( 'XOOPS output init' );
$xoopsLogger->startTime( 'Module display' );
Измените URLs в .htaccess
Далее вы должны изменить ваш .htaccess файл. Если у вас нет файла .htaccess, создайте его. Добавьте следующие строчки в ваш .htaccess:
RewriteEngine On
RewriteRule ^tags/(.*) /modules/tag/$1 [QSA,L]
Вторая строчка изменяет URL адреса модуля tags. Сделайте такие же изменения для остальных модулей, например вставьте строчку
RewriteRule ^newbb/(.*) /modules/newbb/$1 [QSA,L] для вашего форума newbb. Перенаправьте старые страницы через PHP
К данному моменту все должно уже работать. URL адреса переписаны и внутренние ссылки указывают на новые URL адреса. Однако, старые URL адреса все еще работают и возможно индексируются поисковыми системами. Во избежания дублирования контента, вам нужно сделать 301-redirect старых ссылок на новые. Добавьте следующий код в yoursite/modules/tag/header.php:
if(strpos(getenv('REQUEST_URI'), '/modules/tag/') === 0)
{
$oldurl = getenv('REQUEST_URI');
$newurl = str_replace("modules/tag", "tags", $oldurl); header("HTTP/1.1 301 Moved Permanently");
header("Location: $newurl");
}
сразу под:
/**
* Tag management for XOOPS
*
* @copyright The XOOPS project http://www.xoops.org/
* @license http://www.fsf.org/copyleft/gpl.html GNU public license
* @author Taiwen Jiang (phppp or D.J.)
* @since 1.00
* @version $Id$
* @package module::tag
*/
Готово!