Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny][Silex] Konfiguracja katalogu "web" pod Apache
Forum PHP.pl > Forum > PHP > Frameworki
404
Witam,

mam następującą strukturę katalogów:
Kod
/app
/controllers
/vendor
/views
/web
W katalogu web siedzi index.php:
  1. <?php
  2.  
  3. require_once __DIR__ .'/../vendor/autoload.php';
  4. require_once __DIR__ .'/../controllers/Home.php';
  5.  
  6. $app = new Silex\Application();
  7.  
  8. $app->register(new Silex\Provider\TwigServiceProvider(), array(
  9. 'twig.path' => __DIR__ .'/../views',
  10. 'twig.options' => array(
  11. 'cache' => __DIR__ .'/../app/cache/twig'
  12. )
  13. ));
  14.  
  15. $app->get('/', 'MSC\\Home::home');
  16. $app->error(function (\Exception $e, $code) {
  17. return new Symfony\Component\HttpFoundation\Response('['. $code .'] '. $e->getMessage());
  18. });
  19.  
  20. $app->run();
Teraz chciałbym pozbyć się katalogu web z URLa. W tym celu umieściłem pliki .htaccess w katalogach /Silex oraz /Silex/web. Niestety wchodząc przez localhost/Silex dostaję błąd "[404] No route found for GET "/Silex/". Wchodząc w ten sposób: localhost/Silex/index.php wszystko jest ok. Nie mam już pomysłów co mogę robić źle.
c1chy
Jeżeli Silex jest katalogiem głównym to cała zawartość /web powinna być w Silex jeden katalog wyżej powinny być vendor itd. w htaccess RewriteBase powinno być ustawione na /Silex/
404
Silex jest głównym katalogiem aplikacji, ale chciałbym, aby katalog web pełnił rolę takiego public_html. Chodzi mi o uzyskanie tego samego rezultatu co np. w Symfony.
c1chy
hmm czegoś nie rozumiem chyba, co masz na myśli pisząc główny katalog aplikacji dla apache ten katalog to webroot ? jeżeli tak i wrzucisz do niego jeszcze katalog /web/ to link będzie wyglądał tak http://localhost/Silex/web/

jeżeli jednak nie chcesz w url mieć /web/ a /Silex/ to webroot, wtedy po prostu do Silex wrzuć zawartość web a poziom wyżej wrzuć wszystko inne (vendors itd.).
404
Cytat
hmm czegoś nie rozumiem chyba, co masz na myśli pisząc główny katalog aplikacji dla apache ten katalog to webroot ? jeżeli tak i wrzucisz do niego jeszcze katalog /web/ to link będzie wyglądał tak http://localhost/Silex/web/
Pisząc o głównym katalogu aplikacji nie mam na myśli htdocs (C:/xampp/htdocs), a katalog, w którym znajduje się aplikacja. http://localhost/Silex/web/ - dokładnie tak to wygląda. Główny katalog aplikacji to Silex. Żeby było jasne - nie chcę wrzucić całej aplikacji do tego katalogu web, a jedynie index.php, css, js itp. Kontrolery, widoki, vendors chce mieć w katalogu wyżej żeby nie były one dostępne z poziomu przeglądarki.

Cytat
jeżeli jednak nie chcesz w url mieć /web/ a /Silex/ to webroot, wtedy po prostu do Silex wrzuć zawartość web a poziom wyżej wrzuć wszystko inne (vendors itd.).
Mógłbym tak zrobić, ale nie satysfakcjonuje mnie takie rozwiązanie. Poza tym, np. niektóre hostingi zabraniają wrzucać pliki powyżej public_html.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.