Autor Zpráva
Berny
Profil
Zdravím,
už hezkých pár dnů se snažím vyřešit jeden můj problém, který mi nedá spát.

V .htaccess mám kód, který zajistí odstranění koncovky .PHP z konce URL.
Tedy URL http://neco.cz/registrace.php převede na http://neco.cz/registrace a podstrčí ji obsah souboru registrace.php

RewriteEngine On

RewriteBase /

# exists file with extension?
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L]

# redirect, but only once
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+).php$ $1 [L,R=301,NE]
Problém je v tom, že na internetu jede vše jak má, ale na localu se mi to zacyklí. Řekl bych, že je to způsobené tím, že na localu proměnná %{ENV:REDIRECT_STATUS} je prázdná, přičemž by měla obsahovat kód redirectu.
Tento konkrétní případ by se dal vyřešit několika způsoby, ale to právě nechci, protože v dalších případech budu onu proměnnou %{ENV:REDIRECT_STATUS} zase využívat a narazil bych zase na stejný problém.

Neví prosím někdo jak to na localu vyřešit, aby vše fungovalo jak má?
Kajman_
Profil *
Je možné dát do querystringu nejakou proměnnou, která pomůže cyklení zamezit. Jako např.
http://www.jakpsatweb.cz/server/mod_rewrite/mod-rewrite-priklady.html# dyntostat

Také je možné dát všechny .php do jiného adresáře, aby se to necyklilo.
Berny
Profil
Kajman_

Jak jsem říkal. Způsobů jak to vyřešit je víc, ale ptám se, jestli někdo neví proč proměnná %{ENV:REDIRECT_STATUS} je na localu vždy prázdná?
Kajman_
Profil *
A novější apache nepomůže?
Berny
Profil
Kajman_

No pokusit se to vyřešit hned tou poslední variantou se mi zatím opravdu nechce - zvlášť, když nemám jistotu, že to opravdu pomůže.
Spíš bych řekl, že je to v nastavení serveru, ale tomu zas tolik nerozumím, takže jsem asi nahraný.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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