Autor Zpráva
Jaroslav Hlinka
Profil
Zdravím,

používám přesměrování z http://domena.cz/stranka/ na http://domena.cz/index.php?stranka pomocí:

RewriteEngine On
RewriteRule ^(.*)/ %{DOCUMENT_ROOT}/index.php?stranka=$1 [L,QSA]


Můj dotaz je, jestli lze udělat podmínku v .htaccess na rozdílné přesměrování, podle lomítka na konci adresy

http://domena.cz/stranka/ přesměrovat na http://domena.cz/index.php?stranka
http://domena.cz/stranka přesměrovat na http://domena.cz/index2.php?stranka

nebo

předat druhý parametr:

http://domena.cz/stranka/ přesměrovat na http://domena.cz/index.php?stranka?lomitko
http://domena.cz/stranka přesměrovat na http://domena.cz/index.php?stranka?bez_lomitka


Děkuji
Davex
Profil
Lomítko v adrese si přece můžeš zjistit v tom PHP skriptu. Potřebuješ nutně spouštět dva různé skripty nebo proč chceš přidat druhý parametr?

Nějak mi to celé nedává smysl. Nejlepší je předat celou adresu jednomu skriptu a zařídit v něm zbytek. Bude se ti hodit Řešení některých častějších problémů (FAQ) » Univerzální obecné pravidlo.
Jaroslav Hlinka
Profil
Stačilo by mě zjištění toho lomítka v php scriptu, ale nevím jak.

Pokud použiji $_SERVER['REQUEST_URI'], tak mě to vrátí pouze jmeno souboru $stranka. To samé $_GET["stranka"].

Zde údajně cesta k souboru pomocí php nelze zjistit: Zjištění cesty k souboru
Davex
Profil
Jaroslav Hlinka:
Pokud použiji $_SERVER['REQUEST_URI'], tak mě to vrátí pouze jmeno souboru $stranka. To samé $_GET["stranka"].
V $_SERVER['REQUEST_URI'] by lomítko chybět nemělo, ale můžou tam být přidané parametry a v $_GET["stranka"] není , protože se tam nepředává. Lomítko je vyjmuto z podvýrazu ^(.*)/.

Použití univerzálního pravidla by to mělo vyřešit, protože to předává celou cestu skriptu i bez lomítka.

Stačilo by mě zjištění toho lomítka v php scriptu, ale nevím jak.
if (substr_compare($_GET["stranka"], "/", -1) === 0) {

}

Zde údajně cesta k souboru pomocí php nelze zjistit: Zjištění cesty k souboru
Tam jde o něco jiného - cestu k souboru na uživatelově počítači při nahrávání na server.
Jaroslav Hlinka
Profil
Aha, tak v $_SERVER['REQUEST_URI'] lomítko skutečně je.

Můžete mě prosím ještě napsat jak upravit RewriteRule ^(.*)/ %{DOCUMENT_ROOT}/index.php?stranka=$1 [L,QSA] , aby přesměrování fungovalo i pro adresu bez lomítka (dochází jinak k hlášce, že soubor neexistuje)...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: