Sziasztok!
Csinálok egy projt, egy olyan szerverre, amin nincs hozzáférésem a config fájlokhoz. Szóval csak htaccess-t tudok tenni a webroot-omba, és ftp-ről is csak azt érem el, semmi többet. A fejlesztést nem a szerveren csinálom, hanem a saját gépemen, viszont így nyilván ugyanúgy csak htaccess-el kell megoldanom a symfony telepítését.
Odáig eljutottam, hogy SVN-el feltettem a symfonyt, létrehoztam új projectet és applicationt, viszont nem tudom átirányítani a kéréseket a projecthez.
A project elérése:
http://xy.com/webshop/
A mappaszerkezet a következő:
wwwroot/
+ ... (a főoldallal kapcsolatos dolgok, lényegtelen a proj szempontjából)
+ symfony/
+ + .htaccess (deny from all...)
+ + ... (a symfony fájljai)
+ webshop/
+ + apps/
+ + config/
+ + test/
+ + ... (a project fájljai)
+ + web/
+ + + .htaccess (symfony generálta htaccess)
+ + + index.php
Azzal próbálkoztam, hogy tettem egy olyan htaccess-t a webshop mappába, ami a kéréseket a web mappába irányítja, de sajnos kevés sikerrel.
Options +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteRule ^$ /web/ [QSA]
RewriteRule (.*) /web/$1 [QSA]
Ezt kaptam:
The requested URL /web//web/ was not found on this server.
Tanácstalan vagyok, ha van bármi ötletetek, akkor szívesen fogadom.
- 1334 megtekintés
Hozzászólások
"The requested URL /web//web/ was not found on this server."
Nem csináltam még ilyet.
esetleg nem az elérési úttal van gond?
- A hozzászóláshoz be kell jelentkezni
RewriteRule ^$ /web/ [QSA,L]
Be kell tenni az L flaget, különben a második htaccess is lefut az üresnél...
Nem is ez a gond, ha átirányítom, akkor egyrészt a 404-es symfonys hibaoldalt kapom, másrészt meg a statikus fájlok url-jei a proj/web/ mappára mutatnak, és nem a proj/ -re. Fura ez az egész.
Egyébként a mappaszerkezet azért ilyen, mert valszeg több symfony projectet is fogok tenni ugyanabba a wwwroot-ba, külön mappákba, szóval nem viccből.
Ugye azt javasolják, hogy a wwwroot az a web mappa legyen, de ezt itt egyértelműen nem lehet megcsinálni httpd.conf hozzáférés nélkül, a mod_rewrite meg egyszerűen nem megy...
- A hozzászóláshoz be kell jelentkezni
Hmm, most úgy nézem, hogy a http://xy.com/proj/web mappával működik a dolog, azt viszont nem értem, hogy ha a http://xy.com/proj/-ből irányítom át htaccess-el, akkor miért 404-es oldalt kapok, és miért a http://xy.com/proj/web/css -ből kéri le a css fájlokat, miért nem a http://xy.com/proj/css -ből...
- A hozzászóláshoz be kell jelentkezni
Részletes megoldás (teabolt nevű projektre):
wwwroot/.htaccess:
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteRule ^teabolt/(.*)$ teabolt/web/$1 [QSA,L,S=1]
RewriteRule ^(.*)$ main/$1 [QSA,L]
wwwroot/teabolt/web/.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
wwwroot/teabolt/web/index.php:
$_SERVER['REQUEST_URI'].='web/';
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
$context=sfContext::createInstance($configuration);
$context->getRequest()->setRelativeUrlRoot('/teabolt');
$context->dispatch();
Remélem a továbbiakban nem lesz ennyire gáz a Symfony használata, mert ezt úgy 5 nap alatt sikerült összehalásznom intenzív kereséssel.
- A hozzászóláshoz be kell jelentkezni