2016-10-19 34 views
8

mam zainstalowany WordPress:Dostęp specyficzny laravel 5 trasa z katalogu znajduje się gdzie indziej

example.com 

i laravel /public dir (który jest dostępny z api.example.com)

example.com/api 

Jak uzyskać dostęp do trasy w języku Larlavel: /play od example.com/play

obecnie miej ten example.com/play/play pokazujący poprawną ścieżkę laravel, ale ja potrzebuję tego żeby pójść na wyższy poziom.

Konfiguracja index.php w katalogu/home/public_html/grać

require __DIR__.'/../../laravel/bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../../laravel/bootstrap/app.php'; 

to poprawnie wskazuje na /home/laravel np

następnie plik trasy jest

Route::group(['prefix' => 'play'], function() {  
    Route::get('/', ['as'=>'/', 'uses'=>'[email protected]']); 
}); 

Dodałem RewriteCond %{REQUEST_URI} !^/(play/.*)$ do root.htaccess, więc wordpress nie przejmuje.

i wreszcie to, gdzie jestem uderzanie problem:

<IfModule mod_rewrite.c> 
Options -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^/play/index.php [L] 

</IfModule> 

który znajduje się w /home/public_html/play

Więc jak mogę pokazać trasę laravel w/play dir? Czy można to osiągnąć przez przepisanie? Czy mogę przekazać parametr do laravel, aby powiedzieć mu, aby zaczął/grać jako root?

+0

Zamiast mod_rewrite, spróbuj: ' Fallbackresource/play/index.php' w twoim httpd.conf. Daj mi znać, czy działa. – supersan

+0

Uważam, że nie ma żadnych zmian przy użyciu tego podejścia, ponieważ wciąż jest dostęp do tego samego pliku w tej samej lokalizacji. Potrzebuję play/index.php, aby pojawić się jako ../index.php –

Odpowiedz

4

Gdy masz wiele aplikacji, do których chcesz uzyskać dostęp z jednej domeny, najlepszą implementacją jest uruchomienie innego serwera dla każdej aplikacji. Możesz ustawić proxy z głównej aplikacji na inne aplikacje.

Można uruchomić serwer apache2 dla aplikacji laravel konfigurację jak ten

<VirtualHost 0.0.0.0:8080> 
    DocumentRoot "path-to-laravel-app" 

    <Directory "path-to-laravel-app"> 

    Options Indexes FollowSymLinks Includes ExecCGI 

    AllowOverride All 
    Require all granted 
    Allow from all 
    </Directory> 
</VirtualHost> 

następnie skonfigurować serwer proxy w wordpress aplikacja .htaccess pliku jak to

ProxyPass "/play" "http://locahost:8080/play" 
ProxyPassReverse "/play" "http://locahost:8080/play" 
+0

To wygląda tak, jakbym był po, nie jestem pewien, czy mój "udostępniony" hosting pozwala to zrobić, jednak chciałbym spróbować. Moją główną obawą jest to, że gdy serwer zostanie zresetowany, uruchomi ponownie obie instancje aplikacji lub będę musiał ręcznie uruchomić za każdym razem (na pewno nie) ... –

+0

@HarryBosh, jeśli najpierw skonfigurujesz serwery, wtedy nie będziesz musiał ponownie uruchamiać aplikacji , zaktualizuj tylko kod. Zalecam korzystanie z instancji AWS zamiast współdzielonego hostingu. AWS jest tani w przypadku małych aplikacji i masz dużo więcej swobody w implementacji swojego serwera. Możesz również wyszukać usługi CI (Continuous Integration), takie jak 'Circle CI',' Travis Ci' lub Bitbucket (ostatni jest nowy i prosty). – Kliment