Dobrá popíšu tedy co to dělá. Nepopíšu jak to funguje protože sám se učím metodou "pokus omyl".
Mám různé články soubory .php v adresáři /clanky nebo stránka ke kterým přistupuju níže uvedenými způsoby
http://localhost/moje-stranka/podzim
http://localhost/moje-stranka/mikulas
http://localhost/moje-stranka/mikulas
http://localhost/moje-stranka/vanoce
http://localhost/moje-stranka/novy-rok
http://localhost/moje-stranka/uvod
http://localhost/moje-stranka/registrace
http://localhost/moje-stranka/formular
http://localhost/moje-stranka/formular?a=1
http://localhost/moje-stranka/formular?a=2
http://localhost/moje-stranka/clanek
atd. atd.
Co to dělá je na první pohled to co chci aby to dělalo. Po zadání výše uvedených url se změní požadavek na
http://localhost/moje-stranka/pages/podzim.php
http://localhost/moje-stranka/pages/mikulas.php
http://localhost/moje-stranka/pages/mikulas.php
http://localhost/moje-stranka/pages/vanoce.php
http://localhost/moje-stranka/pages/novy-rok.php
http://localhost/moje-stranka/pages/uvod.php
http://localhost/moje-stranka/pages/registrace.php
http://localhost/moje-stranka/pages/formular.php
http://localhost/moje-stranka/pages/formular.php?a=1
http://localhost/moje-stranka/pages/formular.php?a=2
http://localhost/moje-stranka/clanek.php
Poslední volání vypíše:
SCRIPT_NAME:
http://localhost/…a/clanek.php
GET:
Array ( [a] => 1 )
Wait a moment... clanek.php byl jen pokusný soubor a chci ho smazat. Když ho smažu. Co se stane?
Mohu zkoušet volat jakoukoliv z uvedených stránek:
http://localhost/moje-stranka/podzim
http://localhost/moje-stranka/mikulas
http://localhost/moje-stranka/mikulas
http://localhost/moje-stranka/vanoce
http://localhost/moje-stranka/novy-rok
http://localhost/moje-stranka/uvod
http://localhost/moje-stranka/registrace
http://localhost/moje-stranka/formular
http://localhost/moje-stranka/formular?a=1
http://localhost/moje-stranka/formular?a=2
http://localhost/moje-stranka/clanek
Dejmetomu /formular
a výstup bude:
Not Found
The requested URL /moje-stranka/formular was not found on this server.
Protože jsem smazal (či přejmenoval) clanek.php
Takže nyní hledám způsob, jak to napsat lépe, aby to fungovalo i bez té přebytečné řádky
RewriteCond clanky/clanek.php -F
která tam teď z nějakého záhadného důvodu musí být, ačkoliv ve skutečnosti nepotřebuji testovat jestli tam ten soubor clanek.php je nebo není... Ať už to směruju na /clanek nebo /formular či jakýkoliv jiný. Těch stránek respektive článků mám teď asi sedm, ale co když přibude dalších. Jasně, mohl bych ho tam nechat a pokaždé dělat tu kontrolu, ale technicky to není správný postup. Je to jako kdyby si chtěl spustit průzkumník ve Windowsu nebo aplikaci Firefox a potřeboval by si při tom otestovat jestli existuje soubor z LibreOfficu nainstalovaný na disku C: ... když navíc programy mám uložené na jiném oddílu :)