Php Nginx为搜索引擎优化友好的URL结构重写规则-WordPress和另一个Web应用程序
我已经在我的root example.com/网站上安装了WordPress 此外,我还有另一个Web应用程序,它位于example.com/my-app/上,有example.com/my-app/file.php?arg=value等难看的链接可供访问 我如何使我的应用程序SEO友好的URI结构像下面的示例一样工作Php Nginx为搜索引擎优化友好的URL结构重写规则-WordPress和另一个Web应用程序,php,html,wordpress,nginx,rewrite,Php,Html,Wordpress,Nginx,Rewrite,我已经在我的root example.com/网站上安装了WordPress 此外,我还有另一个Web应用程序,它位于example.com/my-app/上,有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
example.com/my-app/file.php?arg=value
to
example.com/my-app/value/
目前,若我访问example.com/my-app/value/它会将我重定向到我的WordPress帖子,其中包含一些/value/字符。为什么?有没有办法让它工作起来
我的域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\u files
指令的最后一个元素是(例如)SEO友好URL的默认操作
对于以/my app
开头的URI,您需要一个不同的默认处理程序,该处理程序是使用位置/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;
...
}
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;
...
}
在上述情况下,arg
被设置为值/my app/value
。如果确实必须提取URI的最后一部分,请添加一个带重写的命名位置,例如:
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;
...
}
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\u read\u超时300代码>(在您的问题中)需要放在位置~\.php$
块中,或者放在一个外部块中才能生效
有关上面使用的nginx
指令的详细信息,请参阅。WordPress和my app
都在一个通用文档根目录下工作,这使事情变得简单
try\u files
指令的最后一个元素是(例如)SEO友好URL的默认操作
对于以/my app
开头的URI,您需要一个不同的默认处理程序,该处理程序是使用位置/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;
...
}
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;
...
}
在上述情况下,arg
被设置为值/my app/value
。如果确实必须提取URI的最后一部分,请添加一个带重写的命名位置,例如:
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;
...
}
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\u read\u超时300代码>(在您的问题中)需要放在位置~\.php$
块中,或者放在一个外部块中才能生效
有关上述使用的nginx
指令的详细信息,请参阅