Правила WordPress також мають винятки

wordpress apache - -
Час читання: 2 протокол

wordpress apache - -WordPress зробив серйозний еволюційний крок вперед на платформі ведення блогів, наблизивши його до повноцінної системи управління вмістом із відстеженням редакцій, більшою підтримкою спеціальних меню та - найінтригуючою для мене функцією - підтримка декількох сайтів із картографуванням доменів.

Якщо ви не наркоман системи управління контентом, це нормально. Ви можете пропустити повз цю статтю. Але для своїх колег техно-вундеркіндів, керівників коду та апаш-дабблерів я хочу поділитися чимось цікавим і чимось крутим.

Мультисайт - це функція, яка дозволяє запускати будь-яку кількість веб-сайтів 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 для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.