Fórum Root.cz
Hlavní témata => Server => Téma založeno: 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?
.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
-
Co je výsledek těch ukázek? Nemá localhost jiný DocumentRoot?
-
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.
-
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.
-
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.
-
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
-
Co takhle nainstalovat Debian a LAMP.
Klidně to můžete mit na USB flesce.
-
čo tak trocha pozmeniť .htaccess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?page=$1