![](/img/trans.png)
[英]SEO friendly URL (Permalinks) not working for Wordpress on NGINX
[英]Nginx rewrite rules for SEO friendly URL structure - WordPress and another Web application
我在我的根example.com/网站上安装了WordPress。
另外,我在example.com/my-app/上有另一个Web应用程序,该应用程序具有难看的链接,例如example.com/my-app/file.php?arg=value。
如何使我的应用程序SEO友好URI结构像下面的示例所示工作:
example.com/my-app/file.php?arg=value
to
example.com/my-app/value/
目前,如果我访问example.com/my-app/value/,它将重定向到我的WordPress帖子,其中包含/ value /的某些字符。 为什么? 反正有没有让这个工作?
我的domain Nginx指令如下所示:
location / {
try_files $uri $uri/ /index.php?$args;
fastcgi_read_timeout 300;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
有任何想法吗? 我应该在开关盒中使用Ajax导航吗? HTML5 pushState()API呢? 有工作示例吗?
感谢帮助!
WordPress和my-app
都在公共文档根目录下工作,这使事情变得简单。
try_files
指令的最后一个元素是(例如)SEO友好URL的默认操作。
您需要以/my-app
开头的URI的其他默认处理/my-app
,这是使用location /my-app
块实现的,例如:
location / {
try_files $uri $uri/ /index.php?$args;
}
location /my-app {
try_files $uri $uri/ /my-app/file.php?arg=$uri&$args;
}
location ~ \.php$ {
try_files $uri =404;
...
}
在上述情况下, arg
设置为/my-app/value
。 如果确实必须提取URI的最后一部分,请添加带有重写的命名位置,例如:
location / {
try_files $uri $uri/ /index.php?$args;
}
location /my-app {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/my-app/(.*)$ /my-app/file.php?arg=$1;
}
location ~ \.php$ {
try_files $uri =404;
...
}
注意fastcgi_read_timeout 300;
(在您的问题中)需要放置在location ~ \\.php$
块中或外部块之一中才能生效。
见这对细节nginx
上面使用的指令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.