[英]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.