2017-05-18 4 views
2

Ich arbeite an einer angular2-Anwendung, die zusammen mit Wordpress-Website platziert wird. Im Folgenden ist der Verzeichnisstruktur:Wordpress und angular2 URL-Routen funktioniert nicht

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

.htaccess-Datei unter dem html-Ordner für Wordpress URL platziert Umschreiben und andere .htaccess unter App-Ordner für angular2 Urls platziert. Ich habe die htaccess-Datei von WordPress aktualisiert, um URLs im App-Ordner zu ignorieren, aber URLs von Wordpress funktionieren nicht mehr und Apache 404 kommt. Folgende ist meine .htaccess-Datei für 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> 

Antwort

2
RewriteCond %{REQUEST_URI} "/app/" 

Diese Richtlinie nicht „Urls unter App-Ordner ignorieren“ - es macht das Gegenteil und nur Routen die Wordpress-URLs, wenn eine URL zugreift, enthält /app/ (irgendwo in der URL). Um dieses Unterverzeichnis ausschließen, die Richtlinie ändern:

RewriteCond %{REQUEST_URI} !^/app/ 

URLs Übereinstimmen, die dies nicht tun Start mit /app/ (man beachte den ! Präfix, dass der Regex negiert).

Wenn Sie jedoch bereits eine .htaccess Datei im Unterverzeichnis /app haben, das mod_rewrite-Anweisungen enthält, sollten Sie dies nicht tun müssen. Die mod_rewrite-Direktiven im Unterverzeichnis überschreiben die mod_rewrite-Direktiven in der übergeordneten .htaccess-Datei vollständig (da mod_rewrite-Direktiven standardmäßig nicht vererbt werden).

+1

Dank seiner Arbeit. –