Regras de redirecionamento para WordPress para usar como API com o Grunt

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:

  1. Todas as solicitações para a api, encontradas na url, /api/$(.*)são atendidas por meio de um arquivo modificado index-api.php, que na verdade é apenas uma cópia do index.phparquivo WordPress padrão .
  2. Em seguida, todas as solicitações de arquivos (scripts, imagens) devem ser deixadas intactas.
  3. Finalmente, todas as outras solicitações são enviadas para o meu site/dist/index.htmlarquivo, 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>