Rychlá navigace na této stránce:
Pokud se rozhodnete napsat skript a přesměrovat PHP, výhody tohoto kroku jsou zřejmé: PHP je skriptovací jazyk orientovaný na server; přesměrování se provede pomocí skriptu na serveru, nikoli v prohlížeči návštěvníků. Některá přesměrování lze provést na straně klienta - přesměrováním js (tj. Přesměrováním JavaScriptu).
Jedná se o flexibilnější a univerzálnější přístup a na rozdíl od jiných metod můžete v PHP provádět několik typů přesměrování. Zde jsou nejběžnější typy přesměrování, která lze v PHP provést: a) 301 přesměrování PHP (stav trvalého přesměrování) b) 302 přesměrování PHP (stav dočasného přesměrování) c) aktualizace.
Tento článek bude užitečný především pro začínající webmastery, kteří hledají způsoby, jak implementovat přesměrování URL, pokud to není možné pomocí jiných běžných řešení, jako je htaccess.
Záhlaví funkce PHP
Řekněme například, že chcete přesměrovat na tuto adresu URL http://www.somewebsite.com/target.php. Na původní stránce PHP stačí zavolat tento skript pro přesměrování:
Vyzkoušejte tento jednoduchý experiment také na svém localhostu:
1) Otevřete textový editor a zadejte tento kód:
Uložte jej jako targetpage.php.
2) Otevřete další prázdný textový soubor a zadejte tento kód:
Uložte jej jako originalpage.php.
3) Nyní spusťte webový prohlížeč. Do adresního řádku prohlížeče zadejte: http: //localhost/originatingpage.php
4) Všimnete si, že po kliknutí na tlačítko Enter se tato adresa URL: http: //localhost/originatingpage.php přesměruje na http: //localhost/targetpage.php a targetpage.php a uvidíte slova „Ahoj tohle je codex -X ".
Jedna z nejčastějších chyb může spočívat v návrhu kódu přesměrování html:
Vyzkoušejte tento experiment:
Přejděte na skript původupage.php a přidejte libovolnou značku HTML:
záhlaví („Umístění: http: //localhost/targetpage.php“);
Předpokládejme, že máte tento kód:
2) Uložte soubor.
3) Spusťte skript původu.php znovu v. Pokud nevidíte žádné chyby, zjistíte, že stále čistě přesměrovává na targetpage.php
4) Nyní zkuste změnit cílovou adresu URL tak, aby ukazovala na skutečný web, například:
5) Nahrajte originpage.php na vzdálený hosting do kořenového adresáře webu.
6) Spusťte skript v prohlížeči voláním adresy URL původupage.php, například: http://www.php-developer.org/originatingpage.php
7) Všimnete si, že tentokrát narazíte na chybu:
Varování: Nelze upravit informace záhlaví - záhlaví již odeslal (výstup spuštěn na /home/phpdevel/public_html/originatingpage.php:6) v /home/phpdevel/public_html/originatingpage.php na řádku 7
Co se tam děje? Důvodem problému je, že před záhlaví funkce již máte výstup HTML.
Jaké je použití přesměrování?
Pomocí přesměrování můžete uživatele přesměrovat z jedné webové stránky na druhou. Také, pokud jsou například na vašem webu texty odkazů na články v nevzhledné formě (sada čísel nebo znaků), lze je změnit použitím přepisu a přesměrováním na tyto odkazy. Možnosti přesměrování jsou téměř neomezené! Výhody této metody pro zvýšení indexování stránek, zlepšení výkonu webu a přilákání uživatelů jsou zřejmé.
Stavový kód HTTP se stavem 301 Moved Permanently označuje, že požadovaný dokument byl nakonec přesunut na nový URI uvedený v poli záhlaví umístění.
K čemu to je?
Nejprve je při změně názvu domény webu nutné upozornit vyhledávače na změnu adresy webu. Zadruhé, pro lepení názvu webu s nebo bez www. Za třetí, rychlý přenos Page Rank na nový web.
PHP
Metoda jedna
Metoda dva
Perl
Metoda jedna
$ cgi \u003d nový CGI; tisk $ cgi-\u003e přesměrování ("http://www.example.com/");
Metoda dva
#! / usr / bin / perl -w use strict; tisk "Stav: 301 trvale přesunuto \\ n"; tisk "Umístění: http://www.example.com/\\n\\n"; výstup;
ASP.NET
Metoda jedna
Metoda dvě (od verze 4.0)
RedirectPermanent („http://www.example.com“);
ASP
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.example.com/" response.end %>Ruby on Rails
def do_something headers ["Status"] \u003d "301 Trvale přesunuto" redirect_to "http://www.example.com/" konecStudená fúze
<.cfheader statuscode="301" statustext="Moved Permanently"> <.cfheader name="Location" value="http://www.example.com">Java (JSP)
<% response.setStatus(301); response.setHeader("Location", "http://www.example.com"); response.setHeader("Connection", "close"); %>Webový server Apache (.htaccess)
První metoda (mod_alias, přesměrování)
Přesměrování 301 / http://www.example.com
Metoda dvě (mod_alias, RedirectPermanent)
Trvalé přesměrování / http://www.example.com
Metoda tři (mod_alias, trvalé přesměrování)
Trvalé přesměrování / http://www.example.com
Metoda čtyři (mod_alias, RedirectMatch)
RedirectMatch 301 ^ (. *) $ Http://www.example.com/
Metoda pět (mod_rewrite)
Možnosti + FollowSymLinks RewriteEngine na RewriteBase / RewriteRule ^ (. *) $ Http://www.example.com/$1
Každý může poslat. Správné přesměrování je ale umění. Přesměrování uživatelů na požadovanou cestu na internetu je ale ještě obtížnější. K tomu je nejvhodnější přesměrování php.
Jaký druh přesměrování?
Ve webovém programování nastávají situace, kdy potřebujete přesměrovat uživatele po odkazu na jinou adresu. Samozřejmě na první pohled vypadá implementace takového přesměrování trochu „nelegálně“. V praxi je takové přesměrování žádáno nejen mezi útočníky, ale také mezi poctivými webmastery:
V jakých případech může být vyžadováno přesměrování:
- Při výměně webového modulu se ve výsledku změní architektura celého prostředku. Pak je tu problém, jak provést přesměrování;
- Při přetváření struktury zdroje - dochází k přidání, odebrání nebo přenosu celých sekcí nebo jednoho materiálu. Během tohoto procesu můžete dočasně uspořádat přesměrování uživatele do požadované sekce;
- Pokud web nedávno změnil název domény - po změně názvu domény se ten starý na nějakou dobu objeví ve výsledcích vyhledávání. V takovém případě vyhledávač automaticky přesměruje uživatele na novou doménu;
- Během procesu autorizace - velký web má zpravidla dvě skupiny uživatelů: běžní návštěvníci a správci prostředků. V tomto případě má smysl přesměrovat každého uživatele podle jeho práv a rolí. Po autorizaci přejdou administrátoři nebo moderátoři do administrativní části prostředku a návštěvníci do uživatelské části prostředku.
Vlastnosti přesměrování na php
Na rozdíl od jiných jazyků má php při přesměrování některé výhody:
- Php je programovací jazyk na straně serveru. Proto k přesměrování nedojde v html kódu stránek zobrazených v prohlížeči, ale ve skriptu hostovaném na serveru;
- Přesměrování php lze implementovat několika způsoby. To značně rozšiřuje jeho použití;
- Kvůli zpracování dat na serveru jsou přesměrování implementovaná pomocí php méně náchylná k filtrům vyhledávače.
Pro přesměrování v php se používá funkce header (). Používá se k odeslání hlavičky http. Jeho syntaxe:
void header (string $ string [, bool $ replace \u003d true [, int $ http_response_code]])
Argumenty přijaté funkcí jsou:
- řetězec $ řetězec - titulní řádek;
Existují dva typy tohoto argumentu. První je odeslat stavový kód připojení. Začíná to „HTTP /“. Druhý typ spolu s hlavičkou odešle do klientského prohlížeče stavový kód (REDIRECT 302). Tento argument začíná řetězcem „Location:“
- bool $ replace je volitelný atribut bool. Odpovědný za přepsání předchozí hlavičky. Pokud je to pravda, bude nahrazen předchozí nadpis nebo nadpisy stejného typu. Pokud je argument nepravdivý, záhlaví nebude přepsáno. Ve výchozím nastavení nastavena na hodnotu true;
- http_response_code - argument vynutí kód odpovědi HTTP. Instalace kódu proběhne úspěšně za předpokladu, že argument řetězce není prázdný.
Stavový kód HTTP je součástí horního řádku odpovědi serveru. Kód se skládá ze tří číslic, následovaných vysvětlujícím nápisem v angličtině. První číslice odpovídá za státní třídu. Přesměrování odpovídá kódům od 300 do 307. Jejich úplný popis najdete v příslušné technické dokumentaci.
Při použití funkce header () k přesměrování externích odkazů je umístění hovoru velmi důležité. V kódu by to mělo být především html tagy:
Použití přesměrování záhlaví ()
Chcete-li předvést, jak funkce funguje na místním serveru, musíte vytvořit dva soubory. Zavoláme jeden z nich redirect.php a druhý redirect2.php. Uvnitř prvního umístíme volání funkce v následujícím formátu:
V jiném souboru vložte řádek:
echo "Dobrý den! Nacházíte se v souboru redirect2.php";
Několik praktičtějších příkladů použití přesměrování php:
- Vynucení stavového kódu http - při použití prvního argumentu funkce header () typu " umístění„Ve výchozím nastavení je stavový kód“ 302 » ( dočasně přesunut). To se může stát problémem při přenosu prostředku na jiný název domény. Ve vyhledávačích může být takové dočasné přesměrování odloženo. Nakonec vyhledávač neustále analyzuje stavový kód. A říká „ dočasně přesunut". Příklad vynuceného přepsání stavového kódu " 302 „zapnuto“ 301 » ( trvale přesunuto):
Přepis je také možný ve dvou fázích. První řádek přepíše stavový kód a druhý přesměruje na novou adresu:
- Přesměrování pomocí externích odkazů k přesměrování v závislosti na roli uživatele. Role se určuje během postupu ověřování. Hodnota, která má být zpracována, se zapíše do proměnné $ who:
- Zjednodušený praktický příklad implementace přesměrování externího odkazu - kliknutím na odkaz se dostanete na stránku php. Odtud je uživatel po 5 sekundách přenesen na Rambler. HTML kód:
Tlačit mě
Kód souboru Redirect3.php:
Tady jsme se naučili základy přesměrování na php. Nyní můžete bezpečně převzít přesměrování uživatelů správným směrem. Hlavní věcí je nemýlit se ve směru, jinak přivedete všechny své uživatele na stránky někoho jiného ...
UCP Anti-Cheat - bezplatný program proti podvádění klient-server na ochranu serveru před bezohlednými hráči.
»Nyní budou data ze serveru UCP odeslána na web v části„ Monitor “
»Přidán nový cvar ucp_monitor
»HL1. Vylepšený systém ochrany proti podvádění
»HL2. Vylepšená podpora pro nejnovější CSS
»HL2. Podpora modů Deathmatch
»HL2. Automatická výměna souboru binkw32.dll
Schopnosti:
"Ochrana před změnami a nahrazením herních souborů
„Ochrana před zavedením a změnami herního procesu
"Ochrana před použitím cheatů skriptů
"Systém zákazů pomocí jedinečného identifikátoru PC
»Poloautomatická instalace klientské části
"Podpora pro parní a neparní verzi her
"Schopnost pořizovat screenshoty od hráčů
"Režim ladění pro rychlou identifikaci problémů
Podporované hry:
"Poločas rozpadu
»Podmínka nula
"Counter strike 1.6
»Den porážky
»Hráč adrenalinu
»Klasická pevnost týmu
"Counter Strike Source
»MU online
»Ragnarok online
Instalace na straně klienta:
1. Spusťte instalační program, vyberte jazyk, kterému rozumíte, a klikněte na „Další“
2. Souhlasíte s podmínkami licence a klikněte na „Další“
3. Klikněte na „Procházet“, vyberte soubor hl.exe a poté klikněte na „Otevřít“
4. Vyberte typ hry a nezapomeňte přidat klíč -parní pokud máte Steam verzi hry nebo patch 33 nebo vyšší (to je build 4156, abyste zjistili číslo buildu, stačí napsat příkaz do herní konzole verze
)
Klíčové hodnoty:
-parní - potřebné pro parní verzi hry nebo je-li oprava 33 nebo vyšší
-noforcemparms - používá nastavení tlačítka myši z Windows
-noforcemaccel - používá nastavení akcelerace myši z Windows
-noforcemspd - používá nastavení rychlosti myši z Windows
-freq - nastaví specifikovanou frekvenci monitoru při spuštění hry (k ničemu pro LCD)
-w - šířka rozlišení monitoru (například -w 800 -h 600 sad 800x600)
Pokud jste nezaškrtli „Vytvořit adresář se zástupci na ploše“ , po instalaci se na ploše objeví adresář Ultra Core Protector s následujícím obsahem:
ucp.log - hlavní soubor s chybovými kódy a informacemi o konfiguraci počítače.
ucp.ini - soubor nastavení pro spuštění hry.
Priorita \u003d 2 - prioritní režim pro herní proces:
nízká - 1
střední - 2
vysoká - 3
reálný čas - 4
pod průměrem - 5
nadprůměrný - 6
Hra \u003d Counter-Strike - typ hry (Half-Life, Counter-Strike, Condition-Zero, Day of Defeat, Team Fortress, Counter-Strike Source)
Jazyk \u003d 1 - jazyk, ve kterém budou chyby zobrazeny (0 - angličtina, 1 - ruština)
Parametry \u003d -nojoy -nomaster -nointro - parametry spuštění hry pro nastavení parametrů spuštění hry, musí být uvedeny ve vlastnosti zástupce „Desktop \\ Ultra Core Protector \\ Counter-Strike“ .
ucp.dbg - soubor, do kterého budou uloženy informace při spuštění anti-cheat v režimu ladění.
Debugovací mód - režim ladění anti-cheat operace k identifikaci problémů.
Protiúder - od této chvíle použijte tuto zkratku pro spuštění hry s anti-cheat.
Chcete-li instalovat na licencované verze her, musíte zadat adresář "steam \\ steamapps \\\\ protiútok \\", a před spuštěním anti-cheat musíte nejprve spustit páru.
Instalace pro HL1:
"Aby anti-cheat fungoval, musí být nainstalován server AMX Mod X Nejnovější verze
"Kopírovat ucp.amxx do adresáře doplňky / amxmodx / pluginy /
" V addons / amxmodx / configs / plugins.ini
přidat řádek ucp.amxx
"Kopírovat ucp.cmd do kořenového adresáře herního módu, kde liblist.gam
"Kopírovat banlist.txt, config.cfg, cvarlist.txt, detectlist.txt a filelist.txt
do adresáře addony / amxmodx / configs / ucp /
"Kopírovat ucp.txt do adresáře addony / amxmodx / data / lang /
»Pokud máte modul nainstalovaný na serveru dproto pod verzí 0.4.8, pak je pro kompatibilitu s anti-cheat nutné v jeho konfiguraci dproto.cfg najít řetězec ValidInfoFields_Engine
a přidejte na konec řádku \\ * ucp_id
Instalace pro HL2:
"Aby anti-cheat fungoval, musí mít server nejnovější verzi
"Kopírovat ucp.smx do adresáře doplňky / sourcemod / pluginy /
"Kopírovat ucp.cmd do kořenového adresáře herního módu, kde gameinfo.txt
"Kopírovat banlist.txt, config.cfg, cvarlist.txt, detectlist.txt
a filelist.txt do adresáře cfg / ucp /
"Kopírovat ucp.phrases.txt do adresáře doplňky / sourcemod / překlady /
Poznámka:
» Aby mohli klienti služby Steam vstoupit na server, potřebujete deaktivovat VAC, k tomu musíte přidat klíč -nebezpečný na startovní řádek serveru.
"Chcete-li automaticky nainstalovat a spustit anti-cheat pro hráče, kteří vstupují bez anti-cheat, musíte přidat řádek
Nainstalujte
v hlavním motd.txt na straně serveru. Poté, co hráč klikne na odkaz Nainstalujte , hra bude vyložena a spuštěna prostřednictvím anti-cheat. Měli byste také varovat hráče, že pro spuštění hry s anti-cheat musíte hru spustit ze souboru ucp.exe z kořenového adresáře hry.
Účel souborů:
config.cfg - anti-cheat konfigurační soubor.
banlist.txt - identifikátory zakázaných uživatelů.
ucp.cmd - původní soubor aktuální klientské části, slouží k identifikaci a automatické aktualizaci.
filelist.txt - seznam souborů ke kontrole s těmi na serveru. Ne více než 100 řádků.
cvarlist.txt - seznam cvar, jehož hodnoty jsou vynucené. Ne více než 50 řádků. (výchozí seznam cvar pro Counter-Strike). (Pouze pro HL1)
ucp.txt - zprávy serveru v různých jazycích pro HL1.
ucp.phrases.txt - zprávy serveru v různých jazycích pro HL2.
detectlist.txt - seznam nežádoucích softwarových podpisů na straně klienta. Ne více než 50 řádků. Syntax:
Typ vyhledávání:
[P] - vyhledávání podle názvu procesu
[W] - vyhledávání podle třídy okna -
[D] - vyhledávání podle jména řidiče
Akce:
[M] - zobrazit zprávu
[K] - proces vykládky
[B] - bsod
Příklad:
[W] [K] virová
[W] [B] ollydbg
[D] [M] ntice.sys Potřebujete zavřít SoftIce a restartovat počítač
Příkazy:
ucp_ban - zákazy na místním serveru hráče pomocí jedinečného identifikátoru počítače. Pokud není čas zákazu zadán nebo je zadána 0, bude navždy zakázán.
ucp_banid - zablokuje lokální server zadaným identifikátorem. Pokud není zadán čas zákazu nebo je zadána 0, bude navždy zakázán.
ucp_unban - odstraní zákaz na lokálním serveru zadaným identifikátorem.
ucp_banlist - zobrazí tabulku zakázaných identifikátorů.
ucp_banlist_file - cesta k souboru, kde jsou uloženy identifikátory zakázaných uživatelů (standardně „0“).
ucp_version - zobrazuje aktuální verzi anti-cheat.
ucp_who - zobrazí seznam hráčů na serveru.
ucp_screen - pořídí snímek přehrávače a odešle jej na server ve formátu jpg pomocí zvoleného protokolu. Druhý parametr je nutný pouze v režimu HTTP k zobrazení snímku obrazovky bez opuštění hry.
ucp_autoscreen - pořídí snímek obrazovky hráče ve stanoveném časovém intervalu (za sekundu). Minimální frekvence musí být alespoň 60 sekund (výchozí „0“).
ucp_mode - povolit / zakázat anti-cheat plugin bez restartování serveru (výchozí "1").
0 - plugin deaktivován
1 - součástí balení
ucp_checkfile_mode - zapnout / vypnout kontrolu souborů ze souboru filelist.txt (standardně „1“).
0 - volba zakázána
1 - tato možnost je povolena, pokud jsou nalezeny nepůvodní soubory, odstraní je a hodí nový
2 - tato volba je povolena, pokud jsou nalezeny nepůvodní soubory, hra se vyloží se zprávou, že je nutné hru přeinstalovat
ucp_upload_mode - protokol, podle kterého budou snímky obrazovky odeslány na server (ve výchozím nastavení „FTP“).
FTP - Protokol pro přenos souborů
HTTP - HyperText Transfer Protocol
LOKÁLNÍ - přeneste snímky obrazovky na místní server (musí být nainstalován plugin UCP Screen Uploader)
ucp_upload_host - HOST nebo IP adresa serveru, kam budou odeslány snímky obrazovky (bez www, http: // a ftp: //), pokud je server http nebo ftp na stejném serveru jako samotná hra a server má interní a externí adresu, je lepší místo značky nastavit znaménko „+“, v tomto případě budou snímky externích hráčů odeslány na adresu externího serveru, a od interního k internímu.
ucp_upload_port - PORT server.
ucp_upload_user - přihlášení pro identifikaci na FTP serveru.
ucp_upload_pass - heslo pro autentizaci na FTP serveru.
ucp_upload_path - adresář nebo php skript, kam se budou nahrávat screenshoty.
ucp_build - číslo nebo čísla sestavení, ze kterých je povolen vstup na server (ve výchozím nastavení „0“, tj. volba je zakázána). Můžete zadat jedno sestavení „4156“ a několik „3779; 3939; 3248; 3266“. Anti-cheat rozpoznává následující verze:
2834, 3147, 3210, 3248, 3266, 3329, 3382, 3647, 3779, 3939, 4156, 4381, 4554
3048, 3152, 3264, 3224, 3698, 3945, 4044, 4248
ucp_cpurl - schopnost zobrazit váš banner v poli Content hosting poskytnutý: při připojování k serveru (ve výchozím nastavení „0“, tj. tato možnost je deaktivována). Musíte vytvořit html soubor, například cs.html, napsat tam následující kód:
kde cs.jpg je váš banner o rozměrech 340x56. Poté nahrajte soubory cs.html, cs.jpg na server http a zadejte zde http: // vaše adresa / cs.html
ucp_detect_mode - zapnutí / vypnutí skenování nežádoucího softwaru na straně hráče (výchozí „1“).
0 - kontrola je deaktivována
1 - kontrola je povolena
ucp_detect_time - interval v sekundách pro skenování nežádoucího softwaru od začátku přihlášení hráče (ve výchozím nastavení „0“, tj. je kontrolován pouze při přihlášení na server).
ucp_link - odkaz na anti-cheat, který se zobrazí při kopnutí zprávy.
ucp_redirect_mode - zapnutí / vypnutí funkce přesměrování hráčů, kteří vstoupili bez anti-cheat (ve výchozím nastavení "0", tj. funkce je deaktivována).
0 - přesměrování je zakázáno
1 - přesměrování je povoleno
ucp_redirect_wan - externí adresa serveru, na který budou hráči bez anti-cheat přesměrováni z Internetu.
ucp_redirect_lan
- místní adresa serveru, na který budou hráči bez anti-cheat přesměrováni zevnitř sítě.
socket_hz.
» Nahrajte obrazovky - jednoduchý php skript pro příjem screenshotů na http serveru.
» ATAC + UCP - integrovaný plugin „kontrola útoků hráčů na jejich tým“ pro potrestání jedinečným identifikátorem UCP.