web-dev-qa-db-ja.com

WordpressはHTACCESSで設定されたGET変数(page_id)を上書きします 

私は非常に大きくてWordpressを限界まで押し広げているワードプレスサイトを持っています。サイトのさまざまなセクションを整理するために、多数のページ/カテゴリと多数の.htaccessルールを使用しています(これは大規模な雑誌用です)。

1つの特定の問題は本当に私を困惑させています。 .htaccessには以下の規則があります...

RewriteRule ^(cat|tag)/([^\/]+)(/?)$ index.php?page_id=3&s1=$2 [L,QSA]
RewriteRule ^xyz/([^\/]+)(/?)$ index.php?page_id=6&s1=$1 [L,QSA]

これで、cat/tagページに与えられた引数の末尾にスラッシュがなければ、それは常に機能します。引数の末尾にスラッシュがある場合、問題のタグは、 'xyz'ページで機能するWordpress以外のテーブルのエントリと一致します。タグがあっても代わりにそのページをロードします。

私は規則が常に機能することをテストし、そしてそれらは機能します。 Wordpressは常に正しい$ _GET ['page'] 3とタグslugを$ _GET ['s1']として取得していますが、上記の条件に当てはまる場合は、別のページをすべて表示することにします。

すべてが.htaccess内で行われ、wordpress内のパーマリンクは完全にオフになります。 WPフォームがpage_idに反して決定するのを止めるにはどうすればいいですか。

1
beseku

WordPressのURLルーティングは非常に扱いにくいものです。それがもっと合理的なものに置き換えられる日を楽しみにしています(そしてそれを置き換えるコードを書くものになることを願っていますが、私は...

しかし、私はあなたの最初の問題は.htaccessですべてをやろうとしていると思います。私はおそらく、私が知っている他の誰よりもURLの設計とURLの書き換えについてもっと多くの経験を持っています、そして私はWordPressと.htaccessと戦おうとはしませんでした。あなたはたぶん現在あなたを夢中にさせているような結果を得ることになるでしょう。代わりに、私はWordPress内からURLルーティングを管理し、あなたがWordPressがしていることを本当に手に負えないものに上書きする必要があるときにフックを使用しようとしました。

しかし、私があなたが何を達成しようとしているのかを完全に理解し、適切な解決策を処方するために、あなたがあなたのサイトに持っているURLとあなたが望むもののフルマップを見たいです。

最後に、関連するQ&Aを以下にリンクしました。彼らは直接あなたの質問に答えているのではありませんが、彼らはあなたにいくらかの洞察を与えるかもしれません、そして最後のものは高トラフィックのためにWordPressを拡大縮小することについてです。

2
MikeSchinkel