URL rewrite engine

13-09-12 17:15

Описание

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

Версия Seditio 171

Пример работы

/page.php?id=1 будет преобразовано в /page-1.htm
/plug.php?e=contactus будет преобразовано в /plug-e-contactus.html

Установка

1. Распакуйте архив и перепишите файлы в папку: /plugins/mod_rewrite/
2. Зайдите в Админ-панель в раздел «Плагины», зайдите в устанавливаемый плагин и нажмите «включить».

Настройка плагина

Откройте файл .htaccess, который находится в корневом каталоге вашего сайта и добавьте в него следующие строки:

php_flag session.use_trans_sid off
php_flag session.use_only_cookies on
Options FollowSymLinks -Indexes
RewriteEngine on
RewriteRule ^([a-z]+)-([a-z]+)-([0-9a-z_]*)-?(.*)$	 $1-$4?$2=$3	[NC,QSA]
RewriteRule ^([a-z]+)-?\.html$	$1.php	[NC,L,QSA]

Если файл .htaccess у вас отсутствует, то возьмите его из архива с плагином. Данный плагин будет работать корректно только под вебсервером Apache с установленым mod_rewrite.

Download : URL rewrite engine
Size: 3KB, downloaded 2027 times

Ratings:

sibirjak 27-07-15 11:27

Добрый день! У меня вот такой вопрос по плагу:

при работе с файлами при попытке доступа к папке плаг формирует ссылку вида /pfs-f-8-c1-update-c2-rpagetext-userid-1.html - при этом получаю ошибку 404 при переходе по этой ссылке. Если руками правлю так: /pfs.php?f=8&c1=update&c2=rpagetext&userid=1, то работает ок. Обратил внимание, что на LDU сайте, где стоит похожий плаг, ссылки на файловые папки остаются не модифицированными плагином. В чем может быть дело?

sibirjak 27-07-15 18:43

короче, сам себе отвечаю: не добрался до глубинных механизмов, почему в LDU ссылки pfs со включенным плагином не переписывались, зато работали нормально. В седе 175 ссылки на pfs переписываются, но не работают. В итоге в плаге подправил это:

$search = "'href=((\')|[\'\"])(\w+).php(((\?|(\&(amp;)?))(?!".$cfg['plugin']['mod_rewrite']['condemned'].")(\w+)=(\w*))*)(((\?|(\&(amp;)?))".$cfg['plugin']['mod_rewrite']['condemned']."=(\w*))??)((\')|[\'\"#])'ie";

на это

$search = "'href=((\')|[\'\"])(\w+)^(pfs).php(((\?|(\&(amp;)?))(?!".$cfg['plugin']['mod_rewrite']['condemned'].")(\w+)=(\w*))*)(((\?|(\&(amp;)?))".$cfg['plugin']['mod_rewrite']['condemned']."=(\w*))??)((\')|[\'\"#])'ie";

а именно, добавил:

^(pfs)

чтоб не парсились ссылки на pfs. Для сео в этом месте пофиг, зато работает. Хотя конечно интересно, чеж с переписанным урлом не пашет... 

sibirjak 31-07-15 13:04

нет, регулярка выше косячная