Fórum Ubuntu CZ/SK

Ostatní => Ubuntu Server => Téma založeno: DracoAn 13 Dubna 2010, 12:16:09

Název: Mod rewrite
Přispěvatel: DracoAn 13 Dubna 2010, 12:16:09
Zdravím,
mám menší problém rewritem. Vše jsem nastavil, vše jsem povolil podle návodu. Když zkusim neexistující stránku, tak mě to přesměruje, ale pokud se pokusím o hezké URL, tak se neděje nic. Ukázka kodu v .htaccess:

Kód: [Vybrat]
# stranka s chybovym hlasenim pro chybu 404 - not found
ErrorDocument 404 /error.php

# presmerovani stranky
RewriteEngine on
RewriteRule ^clanek-(.*) clanek.php?id=$1

Poradí někdo co s tím?
Název: Re: Mod rewrite
Přispěvatel: Tadeáš Pařík 13 Dubna 2010, 13:22:00
Tohle by mohlo pomoct http://htaccess.all4all.cz/ (http://htaccess.all4all.cz/) ;)
Název: Re: Mod rewrite
Přispěvatel: DracoAn 21 Dubna 2010, 11:55:04
No stránka je dobrá a docela z ní budu asi čerpat, ale chci se zeptat kde mám chybu u toho přepisu? Protože podobnýho něco jsem tam nenašel. ??? :'(

Dám příklad:
Mám stránky typu clanek.php?id=15&neco=54

id se mění a i neco záleží na který článek zrovna kliknu a na jaké jsem straně. A já potřebuju, aby se automaticky generovalo toto:

clanek.php?clanek=15


Moc by mě pomohl nějaký návod nebo přímo popis jak to udělat. Jinak moc děkuji za pomoc.
Název: Re: Mod rewrite
Přispěvatel: Tomáš Břinčil 21 Dubna 2010, 12:54:29
Nic se negeneruje, pouze se mění ty adresy. Můžeš tedy chtít například toto:
Kód: [Vybrat]
webURL: http://www.domain.cz/first
index.php$?id1=first
nebo toto:
Kód: [Vybrat]
webURL: http://www.domain.cz/first/second
index.php$?id1=first&id2=second

Můj funkční konfig právě catnutej ze serveru pro tu jednodušší ukázku:
Kód: [Vybrat]
RewriteEngine On
RewriteRule ^([^.^/]+)(/)?$ %{DOCUMENT_ROOT}/index.php?id=$1 [L]
RewriteCond %{REQUEST_URI} !.[[:alnum:]]+$
RewriteRule ^(.+[^/])$ /$1/ [R=301]
Název: Re: Mod rewrite
Přispěvatel: DracoAn 16 Května 2010, 19:22:01
Pro změnu, když jsem nainstaloval 10.4LTS, tak mi přestali fungovat 403 přesměrování, ale 404 funguje dál. Jinak dál zkousim hezké url ale zatím nic.
Název: Re: Mod rewrite
Přispěvatel: Tomáš Břinčil 16 Května 2010, 20:06:06
Pro změnu, když jsem nainstaloval 10.4LTS, tak mi přestali fungovat 403 přesměrování, ale 404 funguje dál. Jinak dál zkousim hezké url ale zatím nic.
No on problém je mezi klávesnicí a židlí, to co jsem poslal funguje na několika diametrálně rozlišných systémech...
Název: Re: Mod rewrite
Přispěvatel: CZ-OmA-124.OS 27 Května 2010, 18:30:31
Měl bych ještě jeden dotaz chtěl bych udělat aby soubory .html bral apache jako .php da se to nějak udělat přes htaccess už sem prolez snad všechno a nic akorat sem povolil allowoveride all a aktivoval mod_rewrite skoušel sem co sem našel všude na netu dat do var/www/.htaccess
a includoval htaccess do index.php ale nic poradte
Název: Re: Mod rewrite
Přispěvatel: DracoAn 29 Května 2010, 22:02:49
Ohledně error 403 jsem narazil na zajimavou věc. Když dám blokovat sebe a přihlásím se, tak mi to napíše klasickou defaultní hlášku. Pokud napíši ale http://moje.domena/error.php, tak se mi zobrazí hláška která má. Pokud se pokusím o přístup kamkoliv jinam, tak mi to hodí zase klasickou defaultní hlášku. Tak mi neříkejte, že jsem blbej já, když na ubuntu serveru 9.10 to fungovalo normálně. Klasická hláška 404 funguje bez problému. Už jsem s toho docela vytočený.

ukázka kodu:
Kód: [Vybrat]
ErrorDocument 403 /error.php
ErrorDocument 404 /error_2.php
ErrorDocument 500 /error_3.php 
Název: Re: Mod rewrite
Přispěvatel: DracoAn 29 Května 2010, 22:09:07
Prý by mělo fungovat tohle:

Kód: [Vybrat]
RedirectMatch (.*)_(.*)\.htm$ $1-$2.php

RedirectMatch (.*)\.htm$ $1.php
Název: Re: Mod rewrite
Přispěvatel: Martin - ViPEr*CZ* 02 Června 2010, 18:52:37
RewriteCond %{HTTP_HOST} ^www\.([^.]+)\.([^.]+)$
RewriteRule ^/(.*)$ /var/www/xxx.cz/web/$1 [L]

RewriteCond %{HTTP_HOST} (.*)\.([^.]+)\.([^.]+)$
RewriteRule ^/(.*)$ /var/www/xxx.cz/web/%1/$1 [L]

Dnes jsem už slepej... automaticky to generuje subdomény...tj jde:

domena.tld
www.domena.tld
subdomena.domena.tld
domena.tld/neco
www.domena.tld/neco


ale nejde mi www.subdomena.domena.tld ???
Název: Re: Mod rewrite
Přispěvatel: Martin - ViPEr*CZ* 03 Června 2010, 12:10:26
No včéra mi to již nemyslelo...ale kdyby někdo potřeboval...:

Kód: [Vybrat]
RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^www\.(.*)\.([^.]+)\.([^.]+)$
RewriteRule ^/(.*)$ /var/www/xxx.cz/web/%1/$1 [L]


Stačí toto přidávat do virtualhostů pro každou doménu zvlášť (toto je pro ukázkovou doménu xxx.cz, která má /DocumentRoot/web složku na disku) a z každého podadresáře ve složce web se stane automaticky subdoména... Funguje s www i bez www.