Próbuję hostować witrynę WordPress w projekcie Laravel (5.1). Mam następującą strukturę (część z nich została usunięta)Laravel i Wordpress na tym samym serwerze/domenie
├── app
├── config
├── public
│ ├── index.php
│ ├── wordpress -> ../wordpress
│ └── .htaccess
├── resources
├── storage
├── vendor
└── wordpress
├── index.php
├── wp-admin
├── wp-config.php
├── wp-includes
└── .htaccess
Główny katalog dokumentów vhost jest publiczny.
Wordpress powinien złapać wszystko, co spada przez .htaccess. Ale na przykład/login powinien przejść do laravel. Kiedy mój projekt rośnie, zamierzam dodać więcej reguł, aby wychwytywać żądania dla Laravel. Mam następujący plik .htaccess w katalogu/public:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^/login" "index.php" [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^(.*)$" "wordpress/$1" [L]
</IfModule>
Ale kiedy robię żądanie/zalogować się i nadal skończyć z strony WordPress. Oto część logu:
add path info postfix: /var/www/public/login -> /var/www/public/login/
strip per-dir prefix: /var/www/public/login/ -> login/
applying pattern '^/login' to uri 'login/'
add path info postfix: /var/www/public/login -> /var/www/public/login/
strip per-dir prefix: /var/www/public/login/ -> login/
applying pattern '^(.*)$' to uri 'login/'
RewriteCond: input='/var/www/public/login' pattern='!-d' => matched
RewriteCond: input='/var/www/public/login' pattern='!-f' => matched
rewrite 'login/' -> 'wordpress/login/'
add per-dir prefix: wordpress/login/ -> /var/www/public/wordpress/login/
strip document_root prefix: /var/www/public/wordpress/login/ -> /wordpress/login/
internal redirect with /wordpress/login/ [INTERNAL REDIRECT]
Wygląda na to, że przepisanie nie kończy się na znaczniku [L].
Powinieneś sprawdzić Themosis: http://framework.themosis.com/ –
Podczas gdy jest to niezła sugestia, nie jest to realistyczne rozwiązanie. Część Laravel jest już w fazie rozwoju. –