papilio

Записи с меткой «Permalink»

Использование mod_magnet для блогов на WordPress

Если у вас в качестве сервера выбран быстрый и лёгкий lighttpd, а для ведения блогов пользуетесь WordPress, то наверняка сталкивались с проблемой т.н. чистых адресов (ЧПУ, permalink). Для сервера на Apache всё решается просто с помощью mod_rewrite и файлов .htaccess. У lighttpd тоже есть mod_rewrite: решение для WordPress я уже описывал.

Но сейчас мне хочется рассказать о более гибкой технологии с использованием mod_magnet. Итак, нам необходимо, чтобы работали нормальные ссылки, а при этом и обычные файлы скачивались. Далее »

Метки: , , , , , , , , , ,

WordPress и lighttpd

Мы поставили WordPress не на Apache, как это обычно бывает, а на перспективный lighttpd. Главным достоинством из многих для нас была скорость работы и малый объём занимаемой памяти.

Но! К сожалению у lighttpd собственный модуль mod_rewite и соответственно собственный синтаксис к нему, и к тому же совсем не поддерживаются столь привычные многим файлы .htaccess. Поэтому стандартные настройки для permalink (постоянные ссылки или ЧПУ) в WordPress не подходят. Однако, всё можно настроить.

В интернете предлагают хороший работающий метод без использования модуля mod_rewrite:

server.error-handler-404 = "/index.php?error=404"

— однако, например, у вас не будет работать поиск на сайте, так как таким способов не передаются GET-запросы.

Мы же стали решили всё-таки воспользоваться mod_rewrite. Для этого достаточно написать в блок с настройками vhost следующее:

  • Для WordPress
    url.redirect = ("^/(.*)" => "http://%1/$1")
    url.rewrite-once = (
          "^/(wp-.*)$" => "$1",
          "^/(.*\.(ico|jpg|jpeg|png|gif|css|js))" => "$1",
          "^/([_0-9a-zA-Z-]+/)?(wp-.*)" => "$2",
          "^/([_0-9a-zA-Z-]+/)?(.*\.php)$" => "$2",
          "^/(.+)/?$" => "index.php/$1",
          "." => "index.php"
    )

    — вторая строчка — моя импровизация для поддержки некоторых типов файлов, которые не лежат в папках wp- .

  • Для WordPress MU (блоги как директории)
    url.redirect = ("^/(.*)" => "http://%1/$1")
    url.rewrite-once = (
         "^/(.*)?/?files/$" => "index.php",
         "^/(.*)?/?files/(.*)" => "wp-content/blogs.php?file=$2",
         "^/(wp-.*)$" => "$1",
         "^/([_0-9a-zA-Z-]+/)?(wp-.*)" => "$2",
         "^/([_0-9a-zA-Z-]+/)?(.*\.php)$" => "$2",
         "^/(.+)/?$" => "index.php/$1",
         "." => "index.php"
    )

    — почти аналогично. В этот же блок необходимо вставлять и перезапись, необходимую для некоторых плагинов (например, WordPress Download Monitor):

    "^/download/(.+)" => "wp-content/plugins/wp-downloadMonitor/download.php?id=$1"

После этих настроек всё работает: и постоянные ссылки, и поиск по блогу.

Метки: , , , , ,

Удаление /blog из WordPress MU

Сразу же после установки WordPress MU permalink (постоянные ссылки) для основного блога имеют префикс /blog. Например:

http://blog.piclab.ru/blog/2007/10/24/novyie-lentyi.html

Но до установки новой версии ссылки не содержали в себе /blog:

http://blog.piclab.ru/2007/10/24/novyie-lentyi.html

И это достаточно плохо, так как permalink на то и permalink, чтобы оставаться постоянными — это и поисковые системы, это и закладки пользователей. Покопавшись в интернете, я нашёл более-менее простое решение по удалению /.

1) wp-admin/option-permalink.php
Надо заменить все «/blog» на «/» (но в принципе это делать не надо)

2) wpmu-settings.php
Надо изменить изменить массив, добавив в него слова 'tag', 'category', '2009', '2008', '2007', '2006':
$blognames = array(
'tag', 'category', '2009', '2008', '2007', '2006',
'page', 'comments', 'blog', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' );

3) В таблице wp_1_options надо изменить permalink_structure. А после изменить её панели управления в кладке Постоянные ссылки (Permalink)

После этого у нас на сайте всё заработало.

Метки: , ,