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 по умолчанию не наследуются).