Nejste přihlášeni
Stránky 1
Zdravím. Když zadám do adresního řádku prohlížeče http://czghost.4fan.cz/?lang=cz, hodí mě to na adresu http://czghost.4fan.cz/home/users/marpo … cz/web/cz/. Správně by mě to mělo hodit na http://czghost.4fan.cz/cz/.
Koukl jsem se na serverovou proměnnou $_SERVER a proměnná SERVER_NAME je správně, takže PHP skript, který tu proměnnou používá k přesměrování, to dělat nemůže. A v souboru .htaccess jsem rovněž nenašel chybu. Týká se to především kořene webu a adresáře /ftp/, kde to dělá taky. Nepomohl ani výmaz cache prohlížeče.
.htaccess v kořeni webu:
# No directory listing, no multi views
Options -Indexes
# Redirects and rewrites allowed
RewriteEngine on
# Redirect direct requests for "index.php?lang=xyz" to "/xyz/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2,3})$
RewriteRule ^(index\.php)?$ ./%1/? [R=301,L]
# Redirect direct requests for "contact.php?lang=xyz" to "/xyz/contact/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2,3})$
RewriteRule ^contact\.php$ ./%1/contact/? [R=301,L]
# Redirect direct request for "contact.php" to "/contact/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^contact\.php$ ./contact/? [R=301,L]
# Internally rewrite "/xyz/contact/" to "/contact.php?lang=xyz"
RewriteRule ^([a-z]{2,3})/contact/?$ ./contact.php?lang=$1 [L]
# Redirect "blog" or "ftp/<anything>" to subdomain [currently unavailable]
#RewriteRule ^(blog|ftp)(/(.*))?$ http://$1.czghost.cz/$3 [R=301,L]
# Internally rewrite "/xyz/" to "/index.php?lang=xyz"
RewriteRule ^([a-z]{2,3})/?$ ./index.php?lang=$1 [L]
# Internally rewrite "/contact/" to "/contact.php"
RewriteRule ^contact/?$ ./contact.php [L]
.htaccess v adresáři /ftp/:
# No directory listing, no multi views
Options -Indexes
# Redirects and rewrites allowed
RewriteEngine on
# Redirect direct requests for "index.php?lang=xyz" to "/xyz/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2,3})$
RewriteRule ^(index\.php)?$ ./%1/? [R=301,L]
# Internally rewrite "/xyz/" to "/index.php?lang=xyz"
RewriteRule ^([a-z]{2,3})/?$ ./index.php?lang=$1 [L]
Může mi tedy někdo říct, co to způsobuje? Pokud se nenajde příčina, pak asi budu muset toto přesměrování smazat. Je zajímavé, že na localhostu to funguje úplně normálně, ale tady to dělá tuhle skopičinu.
Jen dvě věci na světě jsou nekonečné: Vesmír a lidská hloupost. U toho prvního si však nejsem jistý.
- Albert Einstein
Offline
Je to způsobené snahou podstrkovat obsah tam kde chcete změnit adresu v řádku prohlížeče. Když jsem soubor upravil dle
# Redirect direct requests for "index.php?lang=xyz" to "/xyz/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2,3})$
RewriteRule ^(index\.php)?$ http://czghost.4fan.cz/%1/? [R=301,L]
# Redirect direct requests for "contact.php?lang=xyz" to "/xyz/contact/"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2,3})$
RewriteRule ^contact\.php$ http://czghost.4fan.cz/%1/contact/? [R=301,L]
vše funguje tak ja má ...
Offline
Po promazání cache prohlížeče už to funguje, jak má. Ale stejně to nechápu. Proč nefunguje přesměrování s relativním adresováním? Na localhostu mám kořen webu a FTP adresář oddělené (ftp adresář se přesměrovává na lokální subdoménu) a .htaccess soubory obsahují absolutní adresaci s relativním adresováním domén (tedy kořenovou adresaci). Tam to normálně funguje. Relativní adresaci jsem na localhostu nezkoušel.
Jen dvě věci na světě jsou nekonečné: Vesmír a lidská hloupost. U toho prvního si však nejsem jistý.
- Albert Einstein
Offline
Stránky 1