How to install WordPress alongside Laravel on Nginx with pretty permalinks (SEO-friendly URLs)? How to install WordPress alongside Laravel on Nginx with pretty permalinks (SEO-friendly URLs)? wordpress wordpress

How to install WordPress alongside Laravel on Nginx with pretty permalinks (SEO-friendly URLs)?


You route everything to laravel in your / location, but you need to write everything /blog/ to the index.php in /blog/index.php:

location /blog/ {    try_files $uri $uri/ @wordpress;}location @wordpress {    rewrite /blog/ /blog/index.php;}

Then your php handler needs path info support:

location ^/blog/index.php(/.*)?$ {    fastcgi_split_path_info ^(/blog/index.php)(/.*)$;    fastcgi_pass   127.0.0.1:9123;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    fastcgi_param  PATH_INFO $fastcgi_path_info;    include fastcgi_param;}

Turn on debug verbosity for error log if this doesn't work and post log info.

UPDATE: Note from original question asker:

Here is a snippet of my new Nginx config, which seems to work for these URLs: /, /blog, /course, /blog/innately-happy, and /blog/sitemap_index.xml

...error_log /Users/myuser/code/myproject/storage/logs/nginx_error.log debug; # Point index to the Laravel front controller.index           index.php;location /blog/ {    try_files $uri $uri/ @wordpress;}location @wordpress {    rewrite /blog/ /blog/index.php;}location ^/blog/index.php(/.*)?$ {    fastcgi_split_path_info ^(/blog/index.php)(/.*)$;    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    fastcgi_param  PATH_INFO $fastcgi_path_info;    include fastcgi_params;}location / {    try_files $uri $uri/ /index.php$is_args$args;}...