Moc v tom ještě neumím chodit a hledal jsem i zde v diskusi, ale stejně nepochopil. Mám adresu:
http://blahapet.wz.cz/index.php?file=./midi/index
a já bych chtěl z toho dostat:
http://blahapet.wz.cz/midi/index.html
Soubor .htaccess jsem uložil do složky "midi" a do něj napsal:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blahapet\.wz\.cz
RewriteRule ^midi/index(.*)\.html$
http://blahapet.wz.cz/index.php?file=$1[L,QSA]
Ale stejně mi to nejde. Vím, že ten reg. výraz tam mám blbě. Pomozte, prosím.
to ide aj cez PHP:
index.php
<?
if (isset($_GET["file"])) {
Header("Location: blahapet.wz.cz" . $_GET["file"]);
}
?>
...
obsah stranky
...
Já vím a díky, ale spíš bych to chtěl, jak jsem psal.
IMHO to bude i tim, že to máš ve složce midi, to původní url přece míří do kořenovýho adresáře, takže to co je ve složce midi je tomu úplně fuk.
Jak bych to udělal já:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^blahapet\.wz\.cz
RewriteRule ^(.*)\.html$ /index.php?file=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^www.blahapet\.wz\.cz
RewriteRule ^(.*)\.html$ /index.php?file=$1 [L,QSA]
ale nesmí tam být ta tečka v "file=./midi/index".
Mě to takhle fachá.
Díky, ale kam mám ten .htaccess teď vrazit?
Do rootu nebo do midi?
Sorry za otravování, fakt v tom neumím chodit, ale nefunguje mi to ani v rootu, ani v midi.
Jak si psal, Garofano, odstranil jsem tu tečku, ale musel jsem i za ní následující lomítko, takže nakonec měl link podobu:
file=midi/index
a stejně nic se nezměnilo.
<HTML>RewriteEngine on
RewriteCond %{HTTP_HOST} ^blahapet\.wz\.cz
RewriteRule ^(.*)\.html$ /index.php?file=$1 [L,QSA]
RewriteCond %{HTTP_HOST} ^www.blahapet\.wz\.cz
RewriteRule ^(.*)\.html$ /index.php?file=$1 [L,QSA]
Tohle opravdu funguje?
>> RewriteRule ^(.*)\.html$ /index.php?file=$1 [L,QSA]
pri adrese: blahapet.wz.cz/index.php ?????
hmmm</HTML>
Richarde, trochu jsem tě nepochopil. Mohl bys mi ty nebo někdo jinej, prosím, napsat, jak to teda má bejt? Z odkazu:
http://blahapet.wz.cz/index.php?file=./midi/index
dostat odkaz v adresním řádku:
http://blahapet.wz.cz/midi/index.html
Předpokladejme, že máš v rootu .htaccess s tim kódem co sem psal nahoře.
Zadej do adress baru http://blahapet.wz.cz/kyselka.html a dej v tom indexu někde vypsat ten $file , vypíše to "kyselka" nebo ne?
Garofano:
To sice vypíše, i když ten soubor neexistuje. Ale, sorry, furt to nějak nechápu. Musím nějak přepisovat odkazy, nebo je můžu nechat, tak jak jsou, např.:
http://blahapet.wz.cz/index.php?file=./midi/index
V adresním řádku mi pořád zůstává to samý. Vím, že jsem otravnej a předem se omlouvám.
Petr
Ten mod rewrite ti dává vlastně alternativu, takže v tom příkladě o kousek výše můžeš napsat adresu http://blahapet.wz.cz/index.php?file=kyselka
1) http://blahapet.wz.cz/index.php?file=kyselka
2) http://blahapet.wz.cz/kyselka.html
ale kvůli duplicitě, kterou google nemá rád je pak lepší používat jen jeden typ odkazů.
Funguje jen to, když zadám za parametr soubor, kterej je v rootu, např. pokud si dám do rootu soubor "kyselka.php", tak skutečně můžu zadat:
http://blahapet.wz.cz/kyselka.html
místo doposavadního:
http://blahapet.wz.cz/index.php?file=kyselka
Problém nastává se všemi soubory, který jsou v adresářích, protože když chci zadat:
http://blahapet.wz.cz/midi/index.html
Zobrazí se mi pouze ten soubor, t.j. soubor "index.php" ve složce "midi". A jak mám tohle obejít?
Díky, Petr
Já bych to obešel tak, že bych zadával adresu:
http://blahapet.wz.cz/midi_index.html
v PHPčku bych to "exploudnul" nenbo "replacenul", pak už si s tim můžeš dělat co chceš a includovat cokoliv tě napadne.
Ale modem rewrite to musí jít taky, ne?