WordPress и Angular2 URL-адреса не работают

Я работаю над приложением angular2, которое размещается вместе с сайтом WordPress. Ниже приводится структура каталогов:

/var/www/html
 app/ (angular2 app is placed under this folder)
 wp-includes/
 wp-content/
 ...

Файл htaccess помещается в папку html для переписывания WordPress URL, а другой htaccess помещается в папку приложения для URL angular2. Я обновил htaccess файл WordPress, чтобы игнорировать URL-адреса в папке приложения, но теперь URL-адреса WordPress не работают, и Apache 404 идет. Ниже мой htaccess файл для WordPress:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} "/app/"
RewriteRule . index.php [L]
</IfModule>

1 ответ

Решение
RewriteCond %{REQUEST_URI} "/app/"

Эта директива не "игнорирует URL-адреса в папке приложения" - она ​​делает обратное и направляет только URL-адреса WordPress при доступе к URL-адресу, содержащему /app/ (в любом месте в URL). Чтобы исключить этот подкаталог, измените директиву на:

RewriteCond %{REQUEST_URI} !^/app/

Чтобы соответствовать URL, которые не начинаются с /app/ (Обратите внимание ! префикс, который отрицает регулярное выражение).

Однако, если у вас уже есть .htaccess файл в /app подкаталог, который содержит директивы mod_rewrite, то вам не нужно этого делать. Директивы mod_rewrite в подкаталоге полностью переопределят директивы mod_rewrite в родительском .htaccess файл (поскольку директивы mod_rewrite по умолчанию не наследуются).

Другие вопросы по тегам