У правил WordPress тоже есть исключения

WordPress Apache
Время чтения: 2 минут

WordPress ApacheWordPress сделал важный эволюционный шаг вперед в платформе для ведения блогов, приблизив ее к полноценной системе управления контентом с отслеживанием версий, дополнительной поддержкой настраиваемых меню и - что для меня наиболее интригующей функцией - поддержкой нескольких сайтов с сопоставлением доменов.

Если вы не любитель систем управления контентом, ничего страшного. Вы можете пропустить эту статью. Но для моих коллег-техно-гиков, программистов и любителей апачей я хочу поделиться кое-чем интересным и кое-чем классным.

Мульти-сайт - это функция, которая позволяет запускать любое количество веб-сайтов WordPress с одной установкой WordPress. Если вы администрируете несколько сайтов, это хорошо, потому что вы можете установить утвержденную группу тем и виджетов и активировать их для своих клиентских сайтов. Есть несколько технических препятствий для сопоставления ваших доменов, но процесс несложный.

Одна из проблемных областей, которую я определил, - это настройка темы. Поскольку темы могут быть доступны для нескольких веб-сайтов, любые изменения, которые вы делаете для темы, также повлияют на любые другие сайты, использующие эту тему в вашей многосайтовой установке. Мой способ обойти это - продублировать тему до того, как я начну настраивать, и четко назвать тему для клиентского сайта, для которого я ее создаю.

Еще одна интересная проблема - это то, что происходит в файле .htaccess на вашем сервере Apache. WordPress необходимо переписывать пути для каждого блога, и делает это с помощью правила перезаписи и файла php.

WordPress использует следующее правило перезаписи:

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-includes / ms-files.php? File = $ 2 [L]

По сути, все, что находится в подкаталоге mysite.com/files/directory, переписывается на mysite.com/files/wp-includes/myblogfolderpath… и здесь становится интересно. Что произойдет, если вам действительно нужно иметь на сервере файл mysite.com/files/myfolder/myimage.jpg? Вы получаете ошибку 404, вот что происходит. Правило перезаписи Apache срабатывает и меняет путь.

Конечно, вы могли никогда не столкнуться с этой проблемой, но я столкнулся. У меня был сайт, на котором нужно было использовать виджет javascript с другого веб-сайта, и ему нужно было найти графику на mysite.com/files/Images/myfile. Поскольку не было возможности изменить файл на хост-сайте, мне нужно было найти способ сделать это на моем сервере. Простое решение - создать условие перезаписи, которое делает исключение для определенных файлов.

Вот решение:

RewriteCond% {REQUEST_URI}! /? Files / Image / file1.jpg $
RewriteCond% {REQUEST_URI}! /? Files / Image / file2.jpg $
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-includes / ms-files.php? File = $ 2 [L]

Условия перезаписи должны быть помещены перед правилом перезаписи, иначе этот трюк не сработает. Это условие должно быть легко изменить для ваших целей, если вы столкнетесь с подобной проблемой. Решение отлично сработало для меня, позволив мне заменить пользовательскую графику, а не менее желательный замещающий текст, который не подходил для моего дизайна. Надеюсь, это сработает и для вас.

Как вы думаете?

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются ваши данные комментариев.