WordPress .htaccess կանոնները նույնպես բացառություններ ունեն
WordPress- ը բլոգային պլատֆորմում կատարեց էվոլյուցիոն լուրջ քայլ ՝ այն տեղափոխելով բովանդակության կառավարման լիարժեք համակարգ ՝ վերանայման հետևումով, ավելի շատ աջակցություն մաքսային ընտրացանկերին և ինձ համար ամենաինտրիգային առանձնահատկությունը ՝ բազմալեզու աջակցություն տիրույթի քարտեզագրմամբ:
Եթե դուք բովանդակության կառավարման համակարգի թմրամոլ չեք, լավ է: Դուք կարող եք անմիջապես բաց թողնել այս հոդվածը: Բայց իմ ընկերներ տեխնո-գիկերի, կոդերի ղեկավարների և apache-dabblers-ի համար ես ուզում եմ կիսվել ինչ-որ հետաքրքիր և հետաքրքիր բանով:
Multi-site-ը մի հատկություն է, որը թույլ է տալիս գործարկել ցանկացած թվով WordPress կայքեր մեկ WordPress տեղադրմամբ: Եթե դուք կառավարում եք մի քանի կայքեր, լավ է, որովհետև կարող եք տեղադրել թեմաների և վիդջեթների հաստատված խումբ և ակտիվացնել դրանք ձեր հաճախորդի կայքերի համար: Ձեր տիրույթները քարտեզագրելու համար կան մի քանի տեխնիկական խոչընդոտներ, բայց գործընթացը դժվար չէ.
Իմ հայտնաբերած խնդրահարույց ոլորտներից մեկը թեմայի հարմարեցումն է: Քանի որ թեմաները կարող են հասանելի լինել մի քանի կայքերի համար, ցանկացած հարմարեցում, որը դուք անում եք թեմայի վրա, կազդի նաև ցանկացած այլ կայքի վրա, որն օգտագործում է այդ թեման ձեր բազմաբնակարան տեղադրման ժամանակ: Իմ ճանապարհը սա է կրկնօրինակել թեման, նախքան անհատականացնելը սկսելը, և հստակ անվանել այն հաճախորդի կայքի համար, որի համար ես այն ձևավորում եմ:
Մեկ այլ հետաքրքիր խնդիր այն է, թե ինչ է տեղի ունենում Հայաստանում . Htaccess ֆայլ ձեր Apache սերվերում: WordPress-ը պետք է վերաշարադրի ուղիները բլոգ առ բլոգ հիմունքներով և դա անում է վերաշարադրման կանոնով և php ֆայլը.
WordPress- ը օգտագործում է հետևյալ վերաշարադրման կանոնը.
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
Քանդված, սա նշանակում է.
RewriteRule
– Այս հրահանգը Apache-ին ասում է, որ սա վերագրանցման կանոն է:^([_0-9a-zA-Z-]+/)?
- Սա սովորական արտահայտություն է (RegEx) որը համընկնում է նիշերի տողի հետ, որը սկսվում է այբբենական թվային նիշերի և գծիկների կամընտիր տողով, որին հաջորդում է կտրվածք: Փակագծերում նշվում է գրավման խումբ, ինչը նշանակում է, որ համապատասխան տեքստը կարող է օգտագործվել փոխարինող տողի մեջ:files/
– Սա համընկնում է «ֆայլեր/» տողի հետ:(.+)
– Սա գրավման ևս մեկ խումբ է, որը համապատասխանում է նիշերի ցանկացած տողին՝ մեկ կամ մի քանի անգամ:wp-includes/ms-files.php?file=$2
– Սա փոխարինող տող է, որը փոխարինում է համապատասխան տողը: Այն Apache-ին հանձնարարում է վերահղել հարցումը դեպի «wp-includes/ms-files.php»՝ երկրորդ գրավման խմբի արժեքով ($2) որպես հարցման պարամետր, որը կոչվում է «ֆայլ»:[L]
– Սա դրոշ է, որը Apache-ին ասում է դադարեցնել հետագա կանոնների մշակումը, եթե այս կանոնը համընկնի:
Ըստ էության, այն ամենը, ինչ գտնվում է mysite.com/files/directory ենթագրացուցակում, վերաշարադրվում է mysite.com/files/wp-includes/myblogfolderpath… կայքի վրա, և այստեղ այն դառնում է հետաքրքիր: Ի՞նչ է պատահում, եթե իրականում անհրաժեշտ է ձեր սերվերի վրա ունենալ ֆայլ, որը mysite.com/files/myfolder/myimage.jpg է: Դուք ստանում եք 404 սխալ, ահա թե ինչ է պատահում: Apache- ի վերաշարադրման կանոնը սկսվում և փոխում է ուղին:
Gիշտ է, հնարավոր է, որ այս խնդրին երբեք չհանդիպեք, բայց ես դա պատահեցի: Ես ունեի մի կայք, որն անհրաժեշտ էր օգտագործել մեկ այլ կայքի 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]
Կոտրված:
Տող 1:
RewriteCond
– Այս հրահանգը Apache-ին ասում է, որ սա RewriteCond կանոն է:%{REQUEST_URI}
– Սա սերվերի փոփոխական է, որը պարունակում է պահանջվող URI-ի ուղին:!
– Սա ժխտման օպերատոր է, որը նշանակում է «ոչ»: Օգտագործվում է պայմանը շրջելու համար։/?files/Image/file1.jpg$
– Սա կանոնավոր արտահայտություն է, որը համընկնում է «/files/Image/file1.jpg» ճշգրիտ տողի հետ՝ պահանջվող URI-ի վերջում: Հարցական նշանը և առաջ շեղը «ֆայլերից» առաջ դարձնում են առաջատար շեղը ընտրովի:
Տող 2:
RewriteCond
– Այս հրահանգը Apache-ին ասում է, որ սա RewriteCond կանոն է:%{REQUEST_URI}
– Սա սերվերի փոփոխական է, որը պարունակում է պահանջվող URI-ի ուղին:!
– Սա ժխտման օպերատոր է, որը նշանակում է «ոչ»: Օգտագործվում է պայմանը շրջելու համար։/?files/Image/file2.jpg$
– Սա կանոնավոր արտահայտություն է, որը համընկնում է «/files/Image/file2.jpg» ճշգրիտ տողի հետ՝ պահանջվող URI-ի վերջում: Հարցական նշանը և առաջ շեղը «ֆայլերից» առաջ դարձնում են առաջատար շեղը ընտրովի:
Տող 3:
RewriteRule
– Այս հրահանգը Apache-ին ասում է, որ սա վերագրանցման կանոն է:^([_0-9a-zA-Z-]+/)?
– Սա կանոնավոր արտահայտություն է, որը համընկնում է նիշերի տողի հետ, որը սկսվում է այբբենական նիշերի և գծիկների կամընտիր տողով, որին հաջորդում է կտրվածք: Փակագծերում նշվում է գրավման խումբ, ինչը նշանակում է, որ համապատասխան տեքստը կարող է օգտագործվել փոխարինող տողի մեջ:files/
– Սա համընկնում է «ֆայլեր/» տողի հետ:(.+)
– Սա գրավման ևս մեկ խումբ է, որը համապատասխանում է նիշերի ցանկացած տողին՝ մեկ կամ մի քանի անգամ:wp-includes/ms-files.php?file=$2
– Սա փոխարինող տող է, որը փոխարինում է համապատասխան տողը: Այն Apache-ին հանձնարարում է վերահղել հարցումը դեպի «wp-includes/ms-files.php»՝ երկրորդ գրավման խմբի արժեքով ($2) որպես հարցման պարամետր, որը կոչվում է «ֆայլ»:[L]
– Սա դրոշ է, որը Apache-ին ասում է դադարեցնել հետագա կանոնների մշակումը, եթե այս կանոնը համընկնի:
Վերաշարադրման պայմանները պետք է դրվեն նախքան վերաշարադրման կանոնը, այլապես այս հնարքը չի գործի: Պետք է դյուրին լինի փոխել այս պայմանը ձեր սեփական նպատակների համար, եթե բախվեք նմանատիպ խնդրի: Լուծումն ինձ համար հիանալի աշխատեց ՝ թույլ տալով փոխարինել ոչ թե ավելի ցանկալի alt տեքստին, այլ ոչ թե իմ ձևավորմանը չհամապատասխանող անհատական գրաֆիկայի: Հուսով եմ, դա ձեզ համար նույնպես կաշխատի: