/ / .htaccessのルールをPHPに変換する - php、regex、.htaccess、mod-rewrite、pantheon

.htaccessのルールをPHPに変換する - php、regex、.htaccess、mod-rewrite、pantheon

私は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;

誰かが私を正しい方向に向けることができますか?

回答:

回答№1は0

いくつかのコメント。

最初に last 旗、 再書込み時のApacheのドキュメント

[L|last] フラグの原因 mod_rewrite ルールの処理を停止する セット。 ほとんどのコンテキストでは、これは、ルールが一致する場合、それ以上 ルールが処理されます。これはPerlの最後のコマンドに対応しています。 またはCのブレークコマンドを使用します。このフラグを使用して、現在の ルールは、それ以上のルールを考慮せずにただちに適用する必要があります。

ここにいくつかあります 詳細last.

したがって、実装する必要があるパターンは、 switch ステートメント または一連の if-elseifs。

しかし、Nginx wikiによれば、 "if"を悪に使う。使用することをお勧めします try_files 代わりに。

関連項目/参考文献: