Eu pensei que isso foi incrível hoje. Graças a esta postagem, fui capaz de configurar um projeto Grunt Angular muito bom e funcional dentro de um diretório WordPress.
É muito simples, realmente:
- Todas as solicitações para a api, encontradas na url,
/api/$(.*)
são atendidas por meio de um arquivo modificadoindex-api.php
, que na verdade é apenas uma cópia doindex.php
arquivo WordPress padrão . - Em seguida, todas as solicitações de arquivos (scripts, imagens) devem ser deixadas intactas.
- Finalmente, todas as outras solicitações são enviadas para o meu
site/dist/index.html
arquivo, que é um arquivo resultante de uma construção grunhida. É incrível poder usar o WordPress e um aplicativo SPA com um processo de construção Grunt juntos.
Meu incrível arquivo .htaccess para WordPress com uma API:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET"
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Intercept any requests to assets, core, etc. here.. and keep them being written to the core (so they don't go to index.php)
RewriteRule ^scripts/(.*)$ /site/dist/scripts/$1 [NC,L]
RewriteRule ^images/(.*)$ /site/dist/images/$1 [NC,L]
RewriteRule ^api/(.*)$ index-api.php/$1 [NC,L]
# The magic, stops any requests to a file for being redirected.
# needed to be under the /core/ redirect
RewriteCond %{SCRIPT_FILENAME} !-f
# Rewrite all requests to my Grunt generated dist index.html
RewriteRule ^(.*) /site/dist/index.html [NC,L]
# Some requests (without trailing slashes) can fall through the above rule. This bit catches those stragglers.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [L,R=301]
</ifModule>