Rewrite localhostu v .htaccess

Karel

Rewrite localhostu v .htaccess
« kdy: 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
« Poslední změna: 11. 02. 2014, 15:36:02 od Petr Krčmář »


Sten

Re:Rewrite localhostu v .htaccess
« Odpověď #1 kdy: 11. 02. 2014, 16:34:10 »
Co je výsledek těch ukázek? Nemá localhost jiný DocumentRoot?

Karel

Re:Rewrite localhostu v .htaccess
« Odpověď #2 kdy: 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.

Sten

Re:Rewrite localhostu v .htaccess
« Odpověď #3 kdy: 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.

Re:Rewrite localhostu v .htaccess
« Odpověď #4 kdy: 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.


Re:Rewrite localhostu v .htaccess
« Odpověď #5 kdy: 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

Tom Liberec

Re:Rewrite localhostu v .htaccess
« Odpověď #6 kdy: 11. 02. 2014, 21:41:55 »
Co takhle nainstalovat Debian a LAMP.
Klidně to můžete mit na USB flesce.

ixo333

Re:Rewrite localhostu v .htaccess
« Odpověď #7 kdy: 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