Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

.htaccess a nefunkční přesměrování do jiné složky

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: .htaccess a nefunkcni presmerovani do jine slozky

Autor: spaze

18:57:57 28.12.2009

Caj,

28. prosince 2009, 18:43:26, hhuasdwdw napsal(a):
> No potřebuju udělat dvě věci:

A co ti brani to udelat? Vis, co chces napsat, tak to napis jazykem
RewriteRule, jde jen o to si uvedomit poradne, co vlastne chces
udelat.

> -pokud uživatel zadá www.example.cz, tak aby ho to přesměrovalo do
> složky www.example.xz/test, kde to najde soubor index.php a ten se zobrazí

To prece ale neznamena, ze chces prepisovat veskery .*, ne? Ty to
chces prece prepsat jen a pouze ve chvili, kdy uzivatel nezada nic za
lomitko. Takze pouze ve chvili, kdy tam bude prazdno. A to se zapise
tak, ze mezi zacatkem a koncem nic neni.

RewriteRule ^$ http://example.com

> -pokud uživatel zadá www.example.cz/test/admin, tak aby ho to
> přesměrovalo do složky admin, kde si to opět najde soubor index.php
> a ten zobrazí (login do administrace)

A kde je ten adresar admin? Pokud je to podadresar adresare test, tak
neni potreba nic nikam presmerovavat. Pokud je admin slozka, server to
diky mod_dir zjisti a presmeruje na admin/, kde opet zapracuje mod_dir
a direktiva DirectoryIndex a spusti se napr. index.php.

Pokud chces, aby to delalo neco jinyho, musis to holt napsat.


BTW, example.cz taky neni spravna domena pro priklady. to je opravdu
jenom example.com,net,org.

--
Kua, spaze je dneska zas chytrej ;#


Příspěvek zaslán emailem

Citovat příspěvek

 

Re: .htaccess a nefunkční přesměrování do jiné složky

Autor: hhuasdwdw

18:43:26 28.12.2009

No potřebuju udělat dvě věci:

-pokud uživatel zadá www.example.cz, tak aby ho to přesměrovalo do složky www.example.xz/test, kde to najde soubor index.php a ten se zobrazí
-pokud uživatel zadá www.example.cz/test/admin, tak aby ho to přesměrovalo do složky admin, kde si to opět najde soubor index.php a ten zobrazí (login do administrace)

Citovat příspěvek

 

Re: .htaccess a nefunkcni presmerovani do jine slozky

Autor: spaze

18:35:47 28.12.2009

Cau,

28. prosince 2009, 18:22:17, hhuasdwdw napsal(a):
> Ohledně té první možnosti. Pokud potřebuju zobrazit stránku
> index.php, tak nevím, proč bych jí měl naopak odstraňovat z DirectoryIndex.

Treba proto, ze ji nehces jako DirectoryIndex pouzivat (podivej se, co
opravdu DirectoryIndex dela, zda se, ze tomu zcela nerozumis), protoze
vsechno prepisujes na ten index.php pomoci mod_rewrite a pokud
pouzivas oboji, tak ti dochazi k internim redirectum. Jakobych to
nepsal hned v prvnim prispevku.

> RewriteCond %{HTTP_HOST} ^neco.cz
> RewriteRule (.*) http://neco.cz/first/ [R=301,QSA,L]

No, tohle udela nekonecny presmerovani, protoze to tak mas napsany.
Zkus se podivat, co to vlastne dela aneb cely to pravidlo se da
prelozit do lidskeho jazyka asi takto:

pokud pristupujes na server, ktery zacina neco.cz (mimochodem, na
priklady domen slouzi example.com,net,org), tak na jakejkoliv
pozadavek vygeneruj presmerovani na neco.cz/first. Tim padem prohlizec
posle pozadavek na neco.cz/first a zase se dostavame na zacatek,
protoze to je jakejkoliv pozadavek a tak se vygeneruje presmerovani na
/first a tak dale.

Co jsi tim myslel?

--
$ nc ns2.megaprint.cz. smtp
<<< DATA
>>> 354 go ahead punk, make my day


Příspěvek zaslán emailem

Citovat příspěvek

 

Re: .htaccess a nefunkční přesměrování do jiné složky

Autor: hhuasdwdw

18:22:17 28.12.2009

Ohledně té první možnosti. Pokud potřebuju zobrazit stránku index.php, tak nevím, proč bych jí měl naopak odstraňovat z DirectoryIndex.

No každopádně jsem nyní vytvořil prázdný soubor .htaccess a napsal do něj toto:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^neco.cz

pak přidal:
RewriteRule (.*) http://neco.cz/first/ [R=301,QSA,L]

a už to opět zobrazuje výše uvedenou chybu. Takže problém je nejspíše v tomto druhém řádku.

Citovat příspěvek

 

Re: .htaccess a nefunkcni presmerovani do jine slozky

Autor: spaze

18:04:08 28.12.2009

Ahoj,

28. prosince 2009, 17:29:37, hhuasdwdw napsal(a):
> Přidal jsem do toho souboru věci viz. Váš odkaz, ale problém je
> pořád stejný ("Smyčka při přesměrování"):

No jo, ale ve vetsine pripadu nemuzes proste neco nekam pridat a
doufat, ze to bude delat to, co chces.

Mas dve moznosti, budto pochopit, co se s mod_rewrite deje (s tim muzu
pomoci), kdyz tam das nejaky ty tvoje pravidla, nebo si to od nekoho
nechat napsat (to se mi kupodivu nechce)

Dalsi moznost je mod_rewrite proste nepouzit (tady ti taky rad pomuzu
:P)

Zacni s prazdnym .htaccess, zapni si RewriteLog (a RewriteLogLevel na
nejakou vyssi uroven, treba 9 je fajn) a dej si tam jedno pravidlo.
Pokud funguje, dej tam jiny (ale zase pouze to jedno) a zkus, jestli
funguje, jestli ne, tak zjisti proc a zmen to pravidlo. Takhle
postupne najdes, co potrebujes.

Ale jak pisu, proste neco nekam strcit a cekat, co se stane neni moc
dobrej napad, nekdy bys totiz mohl dostat pres hubu, od zarlivyho
manzela.

A mimochodem, nabizel jsem dalsi dve moznosti, proc myslis, ze ta
treti je ta jedina spravna? Ty dalsi dve moznosti nedelaly to, co
potrebujes?

--
Co si sám nezničíš, to se samo neposere. -- Huntah


Příspěvek zaslán emailem

Citovat příspěvek

 

Re: .htaccess a nefunkční přesměrování do jiné složky

Autor: hhuasdwdw

17:29:35 28.12.2009

Díky za odpověď, ale popravdě řečeno z Vaší odpovědi dvakrát moudrý nejsem. Snad je to kvůli tomu, že soubor .htaccess vidím poprvé v životě.

Přidal jsem do toho souboru věci viz. Váš odkaz, ale problém je pořád stejný ("Smyčka při přesměrování"):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^neco.cz

#tohle je z Vašeho odkazu
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+)\.php$ $1 [L,R=301,NE]

RewriteRule (.*) http://neco.cz/first/ [R=301,QSA,L]
RewriteRule ^admin - [L]
RewriteRule ^sitemap\.xml$ index.php?category=sitemap [L,QSA]
RewriteCond %{REQUEST_URI} (gif|jpeg|jpg|css|php|js|ico|robots.txt)$
RewriteRule ^(.*)$ $1 [L,QSA]
RewriteRule ^(.*)\.html$ index.php?menu=$1 [L,QSA]
RewriteRule ^(.*)$ index.php?category=$1 [L,QSA]

Citovat příspěvek

 

Re: .htaccess a nefunkcni presmerovani do jine slozky

Autor: spaze

17:09:57 28.12.2009

Ahoj,

28. prosince 2009, 16:41:06, hhuasdwdw napsal(a):
> RewriteRule ^(.*)$ index.php?category=$1 [L,QSA]

Tipuju, ze to zpusobi tohle pravidlo, diky tomu, ze pouzivas
mod_rewrite v directory contextu (coz znamena, ze pises pravidla do
.htaccess). Apache pak provadi nejaky interni redirecty, protoze mas
urcite nastavenej index.php i jako directory index.

Moznosti jsou v podstate tri:

V .htaccess nastavit i direktivu DirectoryIndex tak, aby neobsahovala
index.php

Nepouzivat index.php, ale neco, co neni v DirectoryIndexu (coz je
horsi varianta toho prvniho, protoze nevis, co v DirectoryIndexu muze
bejt)

Nebo to vyresit pres promennou prostredi REDIRECT_STATUS
http://latrine.dgx.cz/hadanka-znate-mod_rewrite#comment-7359


Mimochodem,

RewriteRule ^admin(.*)$ admin$1 [L,QSA]

se da napsat jako

RewriteRule ^admin - [L]

Coz efektivne zakaze prepisovani pro cokoliv, co zacina na admin (ty
to prepisujes na to stejny, coz je trochu zbytecny), plati to i pro ty
tvoje gify,jpegy apod.

RewriteCond %{REQUEST_URI} html$
RewriteRule ^(.*)\.html$ index.php?menu=$1 [L,QSA]

Tady mas treba ten RewriteCond zbytecnej, stejnou podminku totiz mas v
RewriteRule, je zbytecny to tam mit dvakrat.

--
Kua, spaze je dneska zas chytrej ;#


Příspěvek zaslán emailem

Citovat příspěvek

 

.htaccess a nefunkční přesměrování do jiné složky

Autor: hhuasdwdw

16:40:48 28.12.2009

Dobrý den.

Řekněme, že mám takovýto obsah souboru .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^drelektro.cz
RewriteRule (.*) http://neco.cz/first/ [R=301,QSA,L]

RewriteRule ^admin(.*)$ admin$1 [L,QSA]

RewriteRule ^sitemap\.xml$ index.php?category=sitemap [L,QSA]

RewriteCond %{REQUEST_URI} (gif|jpeg|jpg|css|php|js|ico|robots.txt)$
RewriteRule ^(.*)$ $1 [L,QSA]

RewriteCond %{REQUEST_URI} html$
RewriteRule ^(.*)\.html$ index.php?menu=$1 [L,QSA]

RewriteRule ^(.*)$ index.php?category=$1 [L,QSA]

No problém je v tom, že pokud do adresního řádku napíšu http://neco.cz/first/admin tak dostanu obrazovku s "Smyčka při přesměrování". Nevíte prosím jestli mám v souboru .htaccess chybu, která by způsobovala právě toto chování? Jak to případně napsat, abych se do dané složky dostal?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: