HTML űrlapok. A WP verzió eltávolítása

A HitmanPro felismeri, azonosítja és eltávolítja a vírusokat, kémprogramokat, trójaiakat, rootkiteket és egyéb rosszindulatú programokat.

A segédprogram saját viselkedéselemző és fájlfürt-vizsgáló motorját, valamint SophosLabs, Kaspersky és Bitdefender víruskereső adatbázisokat használó innovatív felhőszkennelési technológiát használ. A HitmanPro szkenner észleli és eltávolítja a potenciálisan rosszindulatú fenyegetéseket, minimális hatással a rendszer teljesítményére.

* A HitmanPro egy ingyenes víruskereső. A törlési funkció 30 napig ingyenesen elérhető.

A HitmanPro főbb jellemzői

A víruskereső képes kezelni a legújabb fenyegetéseket?

A rosszindulatú programok új forrása bárhol megtalálható, még megbízható webhelyeken is. Ezek a fenyegetések különféle technikákat alkalmazhatnak a vírusvédelem elkerülésére. A HitmanPro-t úgy tervezték, hogy működjön együtt a vírusvédelemmel, és mély viselkedéselemzést használ a nulladik napi fenyegetések megtalálására és semlegesítésére – olyan modern fenyegetésekre, amelyek megpróbálják elkerülni az észlelést.

Viselkedésfelismerés + kollektív tapasztalat

Ahelyett, hogy aláírásdefiníciókat használna a rosszindulatú programok azonosítására, a HitmanPro megvizsgálja az egyes fájlok viselkedését rosszindulatú tevékenységek szempontjából. Ez a megközelítés lehetővé teszi a HitmanPro-nak, hogy blokkolja a legújabb alattomos rosszindulatú programokat és vírusokat, mielőtt azonosítanák őket. A HitmanPro a SophosLabs rosszindulatú programadatbázishoz is csatlakozik, hogy több új fenyegetést észleljen, és visszakeresse azokat a forrásukig.

Nincs telepítés

A HitmanPro 12 megabájtot foglal el, és nem igényel telepítést. A program közvetlenül az asztalról, USB-meghajtóról, CD/DVD-ről vagy távoli tárolóról indítható. Még akkor is, ha víruskeresőjét rosszindulatú vagy zsarolóprogram vezérli, a HitmanPro megfelelően fog működni, és képes észlelni és eltávolítani a fenyegetéseket.

Átfogó helyreállítás

A HitmanPro lehetővé teszi a tartós fenyegetések eltávolítását, amelyek megvették a lábukat az operációs rendszerben, és lecseréli a fertőzött rendszererőforrásokat biztonságos, eredeti verziókra, miközben továbbra is blokkolja az újrafertőzési kísérleteket.

Tesztelési díjak

Az adatok átvitele a $_SESSION tömbön keresztül egyszer engedélyezett; az átvitt adatok azonnal törlődnek. Ez hasznos lehet például egy másik modulban bevitt adatok űrlapra való „visszaküldésekor”.

Jó, ha az összes szolgáltatási funkció egy modulban van egyesítve, amelyet a fő modulok a require_once direktíván keresztül kapcsolnak össze. A szolgáltatási függvények modulunkat function.php-nek fogjuk hívni, és az említett trimall és magic metódusokon kívül a következő funkciókat is beépítjük oda:

  • read() - beolvassa az aktuális adatbázist, és visszaadja a rekordok tömbjét;
  • write($a) – $a rekordok tömbjét írja egy fájlba;
  • get_index_by_name ($a,$name) - megkeresi a megfelelő bejegyzést a $név alapján, és visszaadja annak számát (nullától) vagy -1 értéket, ha a bejegyzés nem található. Ez hasznos az új bejegyzés hozzáadása és a meglévő szerkesztése közötti különbségtételhez.

Ezenkívül a függvényfájl tartalmazza a konfigurációs fájlt, és elindítja a munkamenetet – ezekre a képességekre bármelyik modulnak szüksége lehet, amely összeköti.

Function.php fájl

Vegye figyelembe, hogy az olvasási függvény ezenkívül kiszűri a rekordtömböt az üres karakterláncokból (csak abban az esetben, ha általában nem fordulhat elő), és a trimall először minden nem üres karakterláncot egyetlen szóközzel helyettesít (a második preg_replace), és majd távolítsa el az esetleges extra határolókat a fennmaradó sor elejéről és végéről (az első preg_replace).

A kódkompatibilitás szempontjából is van egy árnyalat az olvasási funkcióval kapcsolatban. Mivel az egyetlen sora anonim függvényt tartalmaz, feltételezzük, hogy a PHP 5.3-nál nem régebbi verzióját használjuk. Ha szükséges, cserélje ki az alábbi kódot egy olyanra, ahol a szűrési funkció neve van, vagy egyáltalán nem használja, például itt:

Függvény beolvasása () ( $str=@file_get_contents (FILENAME); $a=explode("\n",$str); return $a; )

A Unicode karakterlánc helyes kisbetűs írása is fontos (lásd mb_strtolower a kódban). Itt nem használunk területi beállításokat.

Úgy tűnik, itt az ideje megírni a fő index.php fájlt. A következő feladatokat fogja megoldani:

  • megjelenít egy űrlapot új bejegyzés hozzáadásához, amelyet az add.php modul dolgoz fel;
  • a hozzáadási űrlap mellett további parancsokat jelenítünk meg - az űrlap törlését egy paraméter nélküli szkript „önhívásával” (itt a gomb nem működik, mert nem visz át adatokat a szerverre) és egy hivatkozást a rekordok rendezéséhez sort.php nevű modul;
  • a munkájuk eredményét más moduloktól $status numerikus változó formájában kapják meg, és a megfelelő üzeneteket jelenítik meg ($status_msg tömb). A nullával egyenlő $status érték alapértelmezésben elfogadásra kerül, ez a program működéséről szóló rövid súgó kimenetének felel meg;
  • ha az adatbázis nem üres, mutassa meg a rekordjait, és biztosítson átmenetet a szerkesztéshez vagy a törléshez.

Hogy ne terheljük túl a táblázatot további gombokkal és hivatkozásokkal, kattintsunk név szerint a bejegyzés szerkesztéséhez az edit.php modul segítségével, majd kattintson a gombra "Szám" mező szerint egy bejegyzés törlésének felel meg a del.php modul által.

Így néz ki néhány bejegyzés hozzáadásával:

A "Mini-DB egy szöveges fájlban" szkript megjelenése

index.php fájl

Most térjünk át a hiányzó modulokra. Úgy tűnik, hogy az add.php egyszerű dolga van – szerezze be a $name és $number változókat az index.php-ből, és írja be őket egy fájlba. A modulnak azonban ellenőriznie kell, hogy nem üres adatokat adjon át neki, és meg kell tudnia különböztetni azt a helyzetet, amikor az adatbázisban már létező név kerül be az új rekord bejegyzésétől (lásd, ha ($id>- 1) ( ... ) más ( ... ) a kódban). Utóbbi esetben a bejegyzés mindig a végére kerül, mert lesz egy modul a karakterláncok ábécé szerinti rendezésére.

Az is fontos, hogy a paraméterkezelőn „átadott” $name karakterlánc már mentes a „kritikus” jelölőkarakterektől, például „, „,< и >, és az adatfájlból kiolvasott $a tömbben minden sor „ahogy van”, és a 123 nem található, ha a $name feldolgozás után 123-ra változott. Ezért a rekordkereső függvény, amelyet get_index_by_name -nek hívunk, a szabványos htmlspecialchars_decode függvény segítségével (amely a PHP 5.1-től elérhető) egy karakterláncot ad át az eredeti formájába. Ugyanebben a formában a karakterlánc visszakerül az index.php fájlba a $_SESSION tömbön keresztül. Ez némi kényelmet biztosít – egy új bejegyzés bevitele után annak adatai az űrlapon maradnak, és lehetőség nyílik egy másik, kissé eltérő névvel rendelkező bejegyzés megadására ("Ivanova" az "Ivanov" után).

Nos, a modulról modulra való visszatérés teljesen szabványos – a szabványos fejléc funkción keresztül. Ne feledje, hogy csak akkor használható, ha a modul még nem adott ki semmit a böngészőnek.

add.php fájl

Most a szerkesztésről szólva, az edit.php-ben lesz megvalósítva. A szerkesztési űrlap szinte megegyezik a hozzáadási űrlappal, csak lusták voltunk külön funkciót létrehozni az űrlap megjelenítéséhez. Ennél is fontosabb, hogy maga a modul a szerkesztési űrlapon keresztül továbbított adatok feldolgozója lesz, ezért meg kell különböztetnie az éppen meghívott helyzetet attól a helyzettől, amikor a felhasználó a „Mentés” gombra kattintott. Az utolsó feladat az ellenőrzés

If (!empty($_POST["submit"]) && !empty($name) && isset($szám) && isset($id)) (

annak meghatározása, hogy megnyomták-e a gombot és az összes adatot átvitték-e. Második ág -

Else if (isset($a[$id])) (

arra a helyzetre szolgál, amikor az $a tömbben van egy bejegyzés, aminek a számát át kell adni a szkriptnek, és azt szerkeszteni kell. A bejegyzés száma egy rejtett HTML mezőben tárolódik.

Fájl edit.php

A del.php rekordeltávolító modul meglehetősen egyszerű lesz, csak egy érvényes $id rekordot kell beszerezni (elemszám a $a tömbben), eltávolítani a megfelelő elemet a tömbből, átírni a fájlt és visszatérni a fő modulba oldalon.

Fájl del.php

Végül a sort.php rendezési modul egy új problémát vezet be: hogyan lehet a Unicode karakterláncokat ábécé szerint rendezni anélkül, hogy különbséget tenne a kis- és nagybetűk között? A szabványos rendezési funkciót használó „közvetlen” rendezés aligha alkalmas – a kis- és egy nagybetűt más-más karakternek tekinti. Nem állítottuk be a területi beállítást, különösen azért, mert nincs egyetlen belépési űrlap minden operációs rendszer számára a telepítéshez.

Korlátozzuk magunkat arra, hogy a tömbök rendezésére szolgáló függvények széles skálájából válasszuk az usortot, az elemek összehasonlítására szolgáló egyedi függvényekkel.

Az egykarakteres Unicode karakterláncok használt „közvetlen” összehasonlítása, úgy tűnik, nem teljesen helyes, de az strcmp bájtonként hasonlítja össze a karakterláncokat, és nem megfelelő nekünk, de általában az összehasonlítás helyes Bármi A karakterláncok Unicode-ban nagyon nehéz feladat... Nekem minden működött a rendszerben oroszra és angolra, például rendezés után természetes szórendeket kaptam, mint pl.

Abba, Avka, avklit, basya, Bobi, Bobik, bobik, Bobina

Fájl sort.php

Nincs más dolgunk, mint létrehozni egy fájlt a .htaccess nevű mappában, ahol az alapértelmezett kódolást Unicode-ra állítjuk, és megadjuk az oldal idézőjelek beállítására vonatkozó direktívákat, így...

Ugyanabban a mappában hozzon létre egy üres (0 bájtos) data.txt fájlt (nem kötelező, ha minden jog be van állítva).

File.htaccess AddDefaultCharset utf-8 php_flag magic_quotes_gpc off php_flag magic_quotes_runtime off php_flag magic_quotes_sybase off

Láthatod, mi történt, és értesíthetsz a talált problémákról, nagyon gyorsan, 2 lépésben írtam meg a forgatókönyvet, és lehet, hogy nem gondoltam végig :)

Hasznos töredékek (kódok) gyűjteménye. A kódokat a téma szerkesztése vagy létrehozása során végzett gyakori feladatokhoz tervezték.

Általában ezt a kódot a téma functions.php fájljában kell elhelyezni. Vagy létrehozhat egy külön.php fájlt, elhelyezheti a kódot, és csatlakoztathatja a fájlt a téma functions.php fájljához a következő módon:

// kódrészletek összekapcsolása request_once "functions-snippets.php";

CSS megjelenés a TinyMCE szerkesztőhöz

Összekapcsolja a stílusfájlt a WordPress TinyMCE szerkesztővel. Így beállíthatunk szerkesztői stílusokat az adminisztrációs panelen, és egy bejegyzés szerkesztésekor megnézhetjük, hogyan néz ki a kezelőfelületen.

// Stílusok a TinyMCE szerkesztőhöz // Létre kell hoznia egy "editor-styles.css" fájlt a téma mappában add_action("current_screen", "my_theme_add_editor_styles"); function my_theme_add_editor_styles() ( add_editor_style("editor-styles.css"); )

CSS a bejelentkezési oldalhoz

## CSS a bejelentkezési oldalhoz ## Létre kell hoznia egy "wp-login.css" fájlt a témamappában add_action("login_head", "my_loginCSS"); függvény my_loginCSS() ( echo ""; )

CSS az adminisztrációs panelhez

Tartalmaz egy stílusfájlt az adminisztrációs panel minden oldalán. Így kényelmesen módosíthatja és kiegészítheti az adminisztrációs panel stílusait.

## CSS-stílusok az adminisztrációs panelhez. Létre kell hoznia egy "wp-admin.css" fájlt a téma mappában add_action("admin_enqueue_scripts", "my_admin_css", 99); function my_admin_css())( wp_enqueue_style("my-wp-admin", get_template_directory_uri() ."/wp-admin.css"); )

Az adminisztrációs sáv eltávolítása a kezelőfelületről

Az adminisztrációs sáv akadályozhatja, ha a téma rögzített (lebegő) blokkokat használ. Ilyen esetekben néha könnyebb eltávolítani ezt a rudat.

## Eltávolítja az adminisztrációs sávot a kezelőfelületről add_filter("show_admin_bar", "__return_false"); ## Widget támogatás engedélyezése. Adjon hozzá egy területet a widgetekhez if(function_exists("register_sidebar"))( register_sidebar(array("before_widget" => "", "after_widget" => "", "before_title" => "", "after_title" => "") , ));)

Egyéni menü támogatás aktiválása

Regisztrál egy területet (helyet) a menü számára, és engedélyezi a menü támogatását. Miután telepítette ezt a kódot az adminisztrációs panelen, lehetőség nyílik egyéni menük létrehozására és a kód által létrehozott területekhez csatolására. A menüsablonban a wp_nav_menu() függvény jeleníti meg.

## Egyéni menük hozzáadása register_nav_menus(array("main" => "Főmenü", "in_footer" => "Menü a láblécben"));

Linkek hozzáadása a bejegyzések és megjegyzések RSS-hírcsatornájához

Egyéni háttérkép vagy háttér ## Lehetővé teszi a háttérkép beállítását az adminisztrációs panelről add_theme_support("custom-background");

Ennek eredményeként a kód a következőt adja ki:

body.custom-background ( háttérszín: #bdd96e; )

Rövid kódok belefoglalása a Szöveg widgetbe

Sok plugin használ rövid kódokat, de nem mindegyik rendelkezik widgetekkel. Ebben az esetben célszerű a beépülő modul rövid kódját használni a „Szöveg” widgetben.

## Rövid kódok a "Szöveg" widgetben if(! is_admin())( add_filter("widget_text", "do_shortcode", 11); )

Alapértelmezés szerint véletlenszerű szöveg a tartalom mezőben az adminisztrációs területen

Amikor új bejegyzést (bejegyzést vagy oldalt) hoz létre, néha kényelmes, ha van néhány megjegyzés, amely elmagyarázza, hogyan és mit kell írni. Ehhez alapértelmezett szöveget szúrhat be a tartalomba:

## Véletlenszerű alapértelmezett szöveg a szerkesztőhöz add_filter("default_content", "writing_encouragement_func"); function writing_encouragement_func($content) ( globális $post_type; // Szövegek a szerkesztő számára, bejegyzés típusa if($post_type == "post")( $array = array("Some message", "Some message", ); return $ array[ array_rand($array) ]; ) // Szövegek a szerkesztőhöz, bejegyzés típusú oldal else ( $array = array("Some message", "Some message",); return $array[ array_rand($array) ]; ) )

Bejegyzések számának módosítása a keresőoldalon

Alapértelmezés szerint a keresőoldal ugyanannyi bejegyzést jelenít meg az oldalon, mint máshol, a beállításokban megadottak szerint.

Ez a példa bemutatja, hogyan jeleníthet meg 100 rekordot egy oldalon.

## módosítsa a bejegyzések mennyiségét a keresőoldalon – állítsa ide 100-ra add_action("pre_get_posts", "search_results_per_page_func"); function search_results_per_page_func($query) ( // lekérdezés a keresőoldalon if(! is_admin() && $query->is_main_query() && $query->is_search())( $query->set("oldalonkénti bejegyzések", 100) ;) return $query;)

Meghatározza, hogy hány szó legyen egy idézetben, ami általában a bejegyzések archivált oldalain (kategóriák, címkék) jelenik meg. Az idézetet a_excerpt() függvény adja ki.

## Az idézet hosszának módosítása add_filter("excerpt_length", "custom_excerpt_length_func"); függvény custom_excerpt_length_func($length) (vissza 20; // szavak száma )

Mezők eltávolítása egy profilból az adminisztrációs panelen: AIM, Yahoo IM, Jabber ## eltávolítja a következő mezőket a profilból: AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "remove_contactmethod"); function remove_contactmethod($contactmethods) ( unset($contactmethods["aim"]); unset($contactmethods["jabber"]); unset($contactmethods["yim"]); return $contactmethods; ) Mezők hozzáadása a profilhoz admin: facebook, twitter ## Mezőket ad a profilhoz: AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "add_contactmethod"); function add_contactmethod($contactmethods) ( $contactmethods["twitter"] = "Twitter"; $contactmethods["facebook"] = "Facebook"; return $contactmethods; ) A has_sidebar osztály hozzáadása a címkéhez, ha van oldalsáv

Ahhoz, hogy ez a feltörés működjön, a témacímkének a szokásos módon a body_class() sabloncímkét kell használnia.

## A `has_sidebar` osztály hozzáadása a `` címkéhez, ha van oldalsáv add_filter("body_class", "has_sidebar_func"); függvény has_sidebar_func($classes)( if(is_active_sidebar("sidebar"))( // osztály hozzáadása $classes = "has_sidebar"; ) return $classes; )

Widget hozzáadása a konzolhoz

Néha hasznos lehet egy widget hozzáadása az adminisztrációs panelkonzolhoz az aktuális témával kapcsolatos fontos információk elhelyezéséhez.

## Egyéni widget a konzolban az adminisztrációs panelen add_action("wp_dashboard_setup", "my_custom_dashboard_widgets"); function my_custom_dashboard_widgets() ( wp_add_dashboard_widget("custom_help_widget", "Témajegyzetek", "custom_dashboard_help"); ) function custom_dashboard_help() ( echo "

Üdvözöljük a "Témám" témában! Íme néhány megjegyzés a témához." ;)

Ezt a widgetet kapjuk:

Beleértve a megjegyzésre válaszoló szkriptet

Ez a szkript mozgatja a megjegyzés űrlapot, amikor a "Válasz" gombra kattint.

## A megjegyzés válaszszkript csatlakoztatása add_action("wp_footer", "enable_threaded_comments"); függvény enable_threaded_comments())( if(is_singular() && comments_open() && get_option("thread_comments")) wp_enqueue_script("comment-reply"); )

Képek A bejegyzések bélyegképeinek bekapcsolása

Alapértelmezés szerint a bejegyzésekhez nincs blokk, ahol beállíthatna egy bejegyzés indexképet. Ahhoz, hogy egy ilyen blokk megjelenjen, engedélyezni kell. Engedélyeznie kell a miniatűrök támogatását. Ez nagyon egyszerűen történik:

## A bejegyzések bélyegképeinek engedélyezése add_theme_support("post-thumbnails"); set_post_thumbnail_size(200, 200, true); // Normál bejegyzés miniatűrök

További köztes bélyegképméretek létrehozása

Amikor feltölt egy képet, további méretek jönnek létre hozzá - miniatűrök. Könnyedén hozzáadhatja saját méretét az alap méretekhez - tetszőleges méretekhez.

## Köztes miniatűrméretek létrehozása if(function_exists("add_image_size"))( add_image_size("mysize-horizont", 300, 200, true); add_image_size("mysize-vertical", 400, 500, true); )

A regisztrált méret eléréséhez használja a funkciót:

Miniatűr hozzáadása egy RSS-hírfolyamhoz

Ez a kód egy bejegyzés indexképet ad az RSS-hírcsatorna tetejéhez.

## Bélyegkép hozzáadása az RSS-hírfolyamhoz add_filter("the_excerpt_rss", "add_thumbnail_to_feed"); //add_filter("the_content_feed", "add_thumbnail_to_feed"); // általában ezt a horgot nem használják, de lehet... függvény add_thumbnail_to_feed($content)( $img = get_the_post_thumbnail(null, array(100, 80), array("align" => "left", " style" => "margin-right:15px;")); $content = $img . $content; return $content; )

Törölje a képek címkébe csomagolását

A tartalomban

Amikor tartalmat jelenít meg egy témában a_content() segítségével, a wpautop() függvény aktiválódik, és ennek eredményeként ha külön sorban van, beburkol

Azok. volt lett .

Ez a példa bemutatja, hogyan lehet eltávolítani ezt a furcsa viselkedést.

## Törölje a képek becsomagolását a ` címkébe

` in content add_filter("the_content", "remove_img_ptags_func"); függvény remove_img_ptags_func($content)( return preg_replace("/

\s*((?:]+>)?\s* ]+>\s*(?:)?)\s*/i", "\1", $content); ) // Az IE html5 szkriptjének összekapcsolása a cdn-nel add_action("wp_head", "IEhtml5_shim_func"); function IEhtml5_shim_func())( echo ""; // vagy ha nyomtatási támogatásra is szüksége van // echo ""; )

Állítsa be a rekord felülvizsgálatok maximális számát

Alapértelmezés szerint a rekordok revízióinak száma korlátlan, és ez szükségtelenül megzavarhatja az adatbázist. A revíziók teljes letiltása sem a legjobb megoldás, mert előfordul, hogy egy rekord szerkesztése közben valami elromlik, és a bevitt adatok elvesznek - a feladat tönkremegy...

Ideális esetben korlátozza a felülvizsgálatok számát, például 5-re:

If(! definiált("WP_POST_REVISIONS")) define("WP_POST_REVISIONS", 5);

Az állandót a beépülő modulban vagy korábban kell definiálni.

Védelem A WP verzió eltávolítása

Erre azért van szükség, hogy a hackerek ne ismerjék a WP verziót, és ne tudják azonosítani a gyenge pontokat. Ezzel a kóddal együtt törölnöd kell a readme.html fájlt is az oldal gyökérében, mert az az aktuális verziót is jelzi.

## A WP verzió teljes eltávolítása ## Törölnie kell a readme.html fájlt is a webhely gyökérjében remove_action("wp_head", "wp_generator"); // a fejlécből add_filter("the_generator", "__return_empty_string"); // feedekből és URL-ekből

Tiltsa le a hibaüzeneteket a bejelentkezési oldalon

Ha hiba történik a bejelentkezési név vagy jelszó megadásakor, a WP jelzi, hogy pontosan mit adtak meg hibásan: bejelentkezési nevet vagy jelszót. Ez további információkat nyújt a jelszókitalálók számára.

Tiltsa le a fájlok szerkesztésének lehetőségét az adminisztrációs panelen témák és beépülő modulok esetén

A fájlok közvetlenül az adminisztrációs panelről történő szerkesztése nagy biztonsági rést jelenthet. Zárjuk le.

## Tiltsa le a fájlok szerkesztésének lehetőségét az adminisztrációs panelen a témák és a beépülő modulok esetében define("DISALLOW_FILE_EDIT", true);

Zárja be a kiadványt az xmlrpc.php oldalon

Alapértelmezés szerint a bejegyzések közzététele az xmlrpc.php fájlon keresztül engedélyezett.

Ez egy lehetőség a bejegyzések közzétételére kívülről, például e-mailből... Leggyakrabban erre a funkcióra nincs szükség, és potenciális lyukak lehetnek benne. Ezért leggyakrabban kívánatos letiltani. Egyébként a WordPress korábbi verzióiban ez a funkció alapértelmezés szerint le volt tiltva, és engedélyezni kellett a használatához.

## letiltja az xmlrpc.php-n keresztüli közzététel lehetőségét add_filter("xmlrpc_enabled", "__return_false");

Még egy személyes webhely létrehozásakor sem mindenki tudja előre látni a további felhasználásának minden lehetséges módját. Nagyon fontos előkészíteni a terepet az oldal további fejlesztéséhez. Ha korábban létrehozott egy webhelyet, és minden oldalhoz alapértelmezés szerint .html kiterjesztést rendel, és csak ezután döntött a PHP használata mellett, akkor olvasson tovább.

Korábban az SSI használatához az oldalak nevének .shtml kiterjesztéssel kellett végződnie, de ma a legtöbb internetes szerver úgy van beállítva, hogy az SSI használható legyen a .html kiterjesztésű oldalakon is, ami nagyon kényelmes. A PHP egy teljesen más történet – a .php kiterjesztés az alapértelmezett kiterjesztés. A weboldal fejlesztői, előre tudva, hogy egy adott programozási nyelvet fognak használni, azonnal hozzárendelik a megfelelő kiterjesztést.

De mi a teendő, ha minden oldal .html kiterjesztéssel végződik?

Cserélje le a HTML kiterjesztést PHP-re

Ezt többféleképpen is meg lehet tenni. A legkézenfekvőbb módja az, ha minden oldalnak .php kiterjesztést adunk, vagy módosítjuk a meglévő kiterjesztéseket (.html, .shtml stb.). Ennek a módszernek vannak hátrányai. Például a már indexelt, .html kiterjesztésű oldalakat a keresőmotoroknak újra kell indexelniük. Vagy ami még rosszabb, minden olyan külső hivatkozás, amely kifejezetten egy adott oldalra mutat, érvénytelen lesz. És értesítenie kell az egyes webhelyek tulajdonosait ezekről a változásokról, és minden oldalhoz létre kell hoznia egy másik oldalt, amelyen 301 hiba található. Természetesen elfogadható az egyik bővítmény cseréje egy másikra, de mi van akkor, ha a webhely már sok oldalt tartalmaz, és sok hivatkozás más webhelyekről származó különböző oldalakra?

Tudatos okból jelen pillanatban ennek az oldalnak minden oldala html kiterjesztéssel végződik, és a fenti változtatásokat nem akartam elvégezni, ezzel felesleges nehézségeket okozva magamnak.

Meg tudod csinálni másképp is. Ha a webhelyet kiszolgáló szerver támogatja a mod_rewrite-et (a legtöbb esetben támogatja), és van hozzáférése a .htaccess fájlhoz, akkor a következő sorokat adhatja hozzá ehhez a fájlhoz:

RewriteEngine a RewriteRule-on ^(.*)\.html $1\.php

Ha hozzáadja ezt a kódot a .htaccess fájlhoz, akkor nem kell aggódnia. Az Apache csodáinak köszönhetően minden kért, nem létező .html kiterjesztésű oldal automatikusan .php kiterjesztésre kerül. De ez a módszer nem az egyetlen. A következőket írhatja ugyanabba a .htaccess fájlba:

AddHandler application/x-httpd-php .php .html .htm

Véleményem szerint a legsikeresebb módszer. Ez a HTML oldalakat egyenlővé teszi a PHP oldalakkal, ami azt jelenti, hogy mostantól minden PHP funkció használható a HTML kiterjesztésű oldalakon. Ha nincs hozzáférése a .htaccess fájlhoz, akkor írhat egy levelet a hosting cégnek, és udvariasan megkérheti az adminisztrátorokat, hogy az Apache konfigurációjában (httpd.conf) írják be a webhelyhez szükséges értéket.

Egyébként, ha ezt megelőzően a webhely a következőképpen használta az SSI-t:

akkor az új PHP állapotban ezt a kódot a következőre kell cserélni:

Nos, ez minden, azt hiszem, a fenti módszerek egyike segít.