Правілы WordPress таксама маюць выключэнні

WordPress Apache

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 для барацьбы са спамам. Даведайцеся, як дадзеныя апрацоўваюцца каментар.