Autor Zpráva
Hondza
Profil
Ahoj, potřeboval bych poradit, jak v .htaccess nastavit přepisování staré adresy na novou, pěknou.
Stará adresa byla: www.a.cz/kod.php?p=stranka.
Nová adresa má vypadat: www.a.cz/text-stranka,
ale skutečná adresa má být: www.a.cz/novy-kod.php?novy=1&p=stranka

Zatím se mi podařilo jen dostat se do stavu, kdy zadám www.a.cz/kod.php?p=stranka, což žůstane v adresním řádku, a v okně se mi zobrazí obsah www.a.cz/novy-kod.php?novy=1&p=stranka. Nedaří se mi přijít na to, jak zobrazovat tu pěknou adresu.
RewriteEngine on

RewriteCond %{QUERY_STRING} ^p=(.+)$
RewriteRule kod\.php$ text-%1? [N]

RewriteRule ^text-(.+)/? novy-kod.php?novy=1&p=$1 [L,QSA]

Jde to vůbec? Nebo nevidím jiné, jednodušší řešení?
Když nastavím příznak R u prvního pravidla, dostanu chybu, že nemám oprávnění k přístupu k souboru text-stranka na serveru.
Příznak R u druhého pravidla hlásí, že nemám oprávnění k přístupu k souboru novy-kod.php.
Testuju na localhostu, nemůže být problém třeba tam?
Kajman
Profil
RewriteCond %{QUERY_STRING} ^p=([^&]+)$
RewriteRule ^kod\.php$ text-%1? [R,NE,L]
Hondza
Profil
Kajman:
Tak to bohužel nefunguje. Jak jsem psal, když přidám příznak R, dostanu hlášku: You don't have permission to access /D:/Complex-Web-Server-2/www/pokus/text-blabla on this server.
A v adrese prohlížeče je http://localhost/D:/Complex-Web-Server-2/www/pokus/text-blabla
Davex
Profil
Ještě asi bude potřeba přidat lomítko na začátek cíle přesměrování nebo nastavit

RewriteBase /
Hondza
Profil
Davex
Díky, RewriteBase to vyřešilo a funguje mi to tak jak má :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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