没有 index.php 的 Nginx Wordpress 永久链接
Nginx Wordpress Permalinks without index.php
我有 nginx 运行 php 7 fpm。
我的 Wordpress permalinks 设置为 /%postname%/
。假设我的域是 example.com
我想要 permalinks 这样的:example.com/postname/
但这会导致错误。我可以用这个 link 找到 post:example.com/index.php?postname/
如何删除 link 中的 index.php?
?
编辑
我的 Nginx 配置
server {
server_name localhost;
root /var/www/;
index index.html index.htm index.php;
location ~\.php$ {
try_files $uri =404;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param REQUEST_URI $args;
}
location / {
try_files $uri $uri/ /index.php$args;
}
location /wordpress/ {
try_files $uri $uri/ /wordpress/index.php?$args;
}
}
你的问题暗示 WordPress 安装在 location /
,所以我不确定为什么你也有 location /wordpress
。
您的配置存在一些问题。
REQUEST_URI 的值应设置为 $request_uri
,这可能已经是 fastcgi_params
文件中的默认值。这是 index.php
用来解码漂亮永久链接的参数。
删除行fastcgi_param REQUEST_URI $args;
。
您的 try_files
语句缺少 ?
。使用:
try_files $uri $uri/ /index.php?$args;
或者:
try_files $uri $uri/ /index.php;
我发现 WordPress 不需要将 $args
传递给 /index.php
。
我有 nginx 运行 php 7 fpm。
我的 Wordpress permalinks 设置为 /%postname%/
。假设我的域是 example.com
我想要 permalinks 这样的:example.com/postname/
但这会导致错误。我可以用这个 link 找到 post:example.com/index.php?postname/
如何删除 link 中的 index.php?
?
编辑
我的 Nginx 配置
server {
server_name localhost;
root /var/www/;
index index.html index.htm index.php;
location ~\.php$ {
try_files $uri =404;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param REQUEST_URI $args;
}
location / {
try_files $uri $uri/ /index.php$args;
}
location /wordpress/ {
try_files $uri $uri/ /wordpress/index.php?$args;
}
}
你的问题暗示 WordPress 安装在 location /
,所以我不确定为什么你也有 location /wordpress
。
您的配置存在一些问题。
REQUEST_URI 的值应设置为 $request_uri
,这可能已经是 fastcgi_params
文件中的默认值。这是 index.php
用来解码漂亮永久链接的参数。
删除行fastcgi_param REQUEST_URI $args;
。
您的 try_files
语句缺少 ?
。使用:
try_files $uri $uri/ /index.php?$args;
或者:
try_files $uri $uri/ /index.php;
我发现 WordPress 不需要将 $args
传递给 /index.php
。