Wordpress 中的永久链接不适用于 Laravel + Nginx
Posted
技术标签:
【中文标题】Wordpress 中的永久链接不适用于 Laravel + Nginx【英文标题】:Permalinks in Wordpress not working with Laravel + Nginx 【发布时间】:2016-05-18 16:02:39 【问题描述】:我在主要路线上使用 Laravel 开发了一个网站,例如 www.example.com/
。我已经使用 nginx 和 php-fpm 正确配置了它。我的配置如下。
然后我在路由/blog
(www.example.com/blog/
)中添加了一个博客,并使用Nginx alias
进行了配置。
现在的问题是 Wordpress 中的永久链接不起作用。 Nginx 重定向到 Laravel 的 404 页面。
例如,当用户输入这样的 URL:example.com/blog/about
,Laravel 的 404 页面就会出现,这很奇怪。
我该如何解决这个问题?如何配置 Nginx?怎么了?
server
listen 80;
server_name example.com;
root /usr/share/nginx/html/;
location /blog
try_files $uri $uri/ /index.php?$args;
alias /usr/share/nginx/blog/;
index index.php index.html index.htm;
location ~ \.php$
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx$fastcgi_script_name;
location /
root /usr/share/nginx/main_site;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php$is_args$args;
location ~ \.php$
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
【问题讨论】:
【参考方案1】:假设你在你的服务器上运行 laravel,并且你想使用 wordpress 作为博客。并且您在名为文件夹的博客中安装了 wordpress。然后你必须在 3 个地方进行更改
1) laravel .htaccess file
2) blogs folder .htaccess file
3) nginx configuration file
Laravel.htaccess 文件更改添加这一行
RewriteCond %REQUEST_URI !^/blogs/
blogs 文件夹.htaccess 文件添加此代码或修改
重写引擎开启 RewriteBase /blogs/ #
在 nginx 配置文件中尝试修改端口 80 和端口 443 代码块中的以下代码
location /blogs
try_files $uri $uri/ /blogs/index.php?$args;
set $base /var/www/html;
root $base/public;
location ~ \.php$
fastcgi..
【讨论】:
【参考方案2】:当location
与别名路径的结尾匹配时,您不需要使用alias
。见this document。
location /blog
中的 try_files
需要默认为 WordPress 路由器 (/blog/index.php
) 而不是 Laravel 路由器 (/index.php
)。
试试:
location /blog
try_files $uri $uri/ /blog/index.php?$args;
root /usr/share/nginx;
...
location ~ \.php$
...
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
【讨论】:
谢谢。现在可以了。我用try_files $uri $uri/ /blog/index.php?$args;
和alias
。它没有用。但是当删除别名时它工作正常。以上是关于Wordpress 中的永久链接不适用于 Laravel + Nginx的主要内容,如果未能解决你的问题,请参考以下文章