Fórum Root.cz

Hlavní témata => Server => Téma založeno: Karel 11. 02. 2014, 15:27:46

Název: Rewrite localhostu v .htaccess
Přispěvatel: Karel 11. 02. 2014, 15:27:46
Dobrý den,
jak vyřešit přes .htaccess, aby se mi při přesměrování na localhostu nesmazal adresar v url?

Kód: [Vybrat]
.htaccess{
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php?page=$1
}

Příklad:
na strane serveru to funguje ok:
http://domena.cz/cenik

na localhostu:
http://localhost/cenik
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: Sten 11. 02. 2014, 16:34:10
Co je výsledek těch ukázek? Nemá localhost jiný DocumentRoot?
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: Karel 11. 02. 2014, 17:15:14
Výsledek je stránka nenalezena, protože na localhostu mám "DocumentRoot= d:\wamp\www" , kde mám názvy adresářu tak jako zakoupene domeny .. a mám tam samoze i jine adresare (domeny.xy). no a treba soubor phpinfo.php a testmysql.php (coz je primo wamp soubor)


localhost/domena.xy/cenik
localhost/domena-jina.cz/produkty
localhost/dalsiadresar-as-domena/neco

Jenže ten rewrite smaže to domena.xy ..jak jsem psal ... pochopeno? No a rád bych, aby se to chovalo stejně jak na hostingu tak na locale.
Mohl bych asi napsat primo v index.php podminku
if $_SERVER['SERVER_NAME'] == 'localhost'; tak neco , ale myslel jsme ze to jde vyresit pres ten .htaccess

Děkuji K.
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: Sten 11. 02. 2014, 18:20:45
Pokud se to má chovat stejně na localhostu jako na hostingu, pak by oboje mělo mít stejný DocumentRoot, jinak vám tam totiž nebudou fungovat ani absolutní cesty, třeba /index.php (nebo /404.php pro ošetřování chyb) náhle odkazuje do jiného adresáře, což přes mod_rewrite nijak neošetříte.

Pokud to ale přeci jen chcete mít takhle rozdělené,  přidejte tam další RewriteCond. %{HTTP_HOST} obsahuje jméno serveru zadané v prohlížeči.
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: MalyTomi 11. 02. 2014, 18:23:10
ja som podobny pripad riesil cez virtualhost a kazda domena mala svoj vlastny documentroot + zaznam do hosts.
a mam strukturu rovnaku, ako v produkcii, aj s odkazmi.
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: cik951 11. 02. 2014, 18:32:57
Osobně doporučuju si na lokále vytvořit pro testování virtuální hosty a budete se to chovat stejně jak na hostingu .

1) upravte si soubor etc ( c:\WINDOWS\system32\drivers\etc\hosts )
Přidejte řádek např.
127.0.0.1   www.test.local

2) Pak si upravte d:\wamp\bin\apache\Apache2.2.17\conf\httpd.conf
ve kterém povolte virtualhosy
...
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
...

3) Pak upravte d:\wamp\bin\apache\Apache2.2.17\conf\extra\httpd-vhosts.conf

...
<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/test"
    ServerName www.test.local
    CustomLog "D:/wamp/logs/test/access.log" common
</VirtualHost>
...

4) Vytvořte složky D:/wamp/www/test a D:/wamp/logs/test/

5) Restartujte Wamp a pak by vám v měla fungovat adresa www.test.local v prohlížeči a budete to mít jak na hostingu
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: Tom Liberec 11. 02. 2014, 21:41:55
Co takhle nainstalovat Debian a LAMP.
Klidně to můžete mit na USB flesce.
Název: Re:Rewrite localhostu v .htaccess
Přispěvatel: ixo333 12. 02. 2014, 08:00:36
čo tak trocha pozmeniť  .htaccess

Kód: [Vybrat]
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?page=$1