繁体   English   中英

将 .htaccess 重写规则转换为 PHP

[英]Convert .htaccess rewrite rule to PHP

我有一个在 Pantheon 上运行的 WordPress 站点,它使用 nginx。 .htaccess 文件中的重写规则被忽略,因此需要将它们放在 wp-config.php 中。 我的正则表达式技能或多或少不存在,我需要将这些重写规则转换为 PHP:

rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml$ "/index.php?xml_sitemap=params=$2" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.xml\.gz$ "/index.php?xml_sitemap=params=$2;zip=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html$ "/index.php?xml_sitemap=params=$2;html=true" last;
rewrite ^/sitemap(-+([a-zA-Z0-9_-]+))?\.html.gz$ "/index.php?xml_sitemap=params=$2;html=true;zip=true" last;

任何人都可以指出我正确的方向吗?

一些评论。

首先关于last标志,直接来自 关于重写Apache 文档

[L|last]标志导致mod_rewrite停止处理规则集。 在大多数情况下,这意味着如果规则匹配,则不会处理其他规则。 这对应于 Perl 中的最后一个命令,或 C 中的 break 命令。使用此标志来指示应立即应用当前规则而不考虑其他规则。

这里有一些关于last更多细节

因此,您必须实现的模式应该看起来像一个switch语句或一系列if-elseif

但是,Nginx wiki 说使用“if”是邪恶的 建议改用try_files

另见/进一步参考:

这就是我使用的。 使用 curl 代理到不同的 URL 路径。 适用于 Drupal 和 Wordpress。 https://github.com/mpaladino/pantheon-htaccess-rewrites

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM