Подкаталог WordPress как Symfony (Symfony3)

Я запускаю приложение Symfony на DigitalOcean. Я установил весь сайт и создал VirtualHosts. Мне нужно запустить WordPress в качестве подкаталога (/ blog). Из того, что я знаю, Symfony стремится игнорировать подкаталоги в / web, поэтому я создал / web / blog и установил в нем WordPress.

<VirtualHost *:80> DocumentRoot /var/www/html/site.com/web <Directory /var/www/html/site.com/web> AllowOverride None Order Allow,Deny Allow from All <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> ErrorLog /var/log/apache2/symfony_error.log CustomLog /var/log/apache2/symfony_access.log combined </VirtualHost> 

На локальных установках без VirtualHost это работает отлично.

Но на реальном сервере, скажем, в 21.21.21.21 У ​​меня есть Symfony, и 21.21.21.21/blog должен открыть блог, но это не так, вместо этого идет на Symfony 404. В то время как 21.21.21.21/blog/index.php запускает блог (WordPress).

WordPress .htaccess, который живет в / web / blog, выглядит следующим образом:

 Options -Indexes DirectoryIndex index.php # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> # END WordPress 

Я пробовал переделывать это с некоторыми ответами в Интернете, ничего не меняется.

Обновите свой vhost, чтобы исключить ваш каталог /blog из правил симфонии. И вам также нужно будет переключиться на AllowOverride All поскольку вы используете .htaccess в /blog .

 <VirtualHost *:80> DocumentRoot /var/www/html/site.com/web <Directory /var/www/html/site.com/web> AllowOverride All Order Allow,Deny Allow from All <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/blog(/.+)? [NC] RewriteRule ^(.*)$ app.php [QSA,L] </IfModule> </Directory> ErrorLog /var/log/apache2/symfony_error.log CustomLog /var/log/apache2/symfony_access.log combined </VirtualHost> 

Обязательно перезапустите apache после изменений.

Изменения в WordPress .htaccess:

  Options -Indexes DirectoryIndex index.php # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> # END WordPress