WordPressのルールにも例外があります

ワードプレスApache
読書の時間: 2

ワードプレスApacheWordPressは、ブログプラットフォームで大きな進化の一歩を踏み出し、リビジョントラッキング、カスタムメニューのサポートの強化、ドメインマッピングによるマルチサイトサポートを備えた本格的なコンテンツ管理システムに近づきました。

あなたがコンテンツ管理システム中毒者でないなら、それは大丈夫です。 この記事のすぐ前をスキップできます。 しかし、私の仲間のテクノオタク、コードヘッド、そしてアパッチダブラーのために、私は何か面白いものとクールなものを共有したいと思います。

マルチサイトは、XNUMX回のWordPressインストールで任意の数のWordPressWebサイトを実行できるようにする機能です。 複数のサイトを管理している場合は、承認されたテーマとウィジェットのグループをインストールして、クライアントサイト用にアクティブ化できるので便利です。 ドメインをマッピングするための技術的なハードルはいくつかありますが、プロセスは難しくありません。

私が特定した問題領域のXNUMXつは、テーマのカスタマイズです。 テーマは複数のWebサイトで利用できるため、テーマをカスタマイズすると、マルチサイトインストールでそのテーマを使用している他のサイトにも影響します。 これを回避する方法は、カスタマイズを開始する前にテーマを複製し、スタイルを設定しているクライアントサイトのテーマに明確に名前を付けることです。

もうXNUMXつの興味深い問題は、Apacheサーバーの.htaccessファイルで何が起こるかです。 WordPressはブログごとにパスを書き換える必要があり、これは書き換えルールとphpファイルを使用して行います。

WordPressは次の書き換えルールを使用します。

RewriteRule ^([_ 0-9a-zA-Z-] + /)?files /(.+)wp-includes / ms-files.php?file = $ 2 [L]

基本的に、mysite.com / files / directoryのサブディレクトリにあるものはすべて、mysite.com / files / wp-includes / myblogfolderpathに書き換えられます。これが興味深いところです。 サーバー上にmysite.com/files/myfolder/myimage.jpgというファイルが実際に必要な場合はどうなりますか? 404エラーが発生し、それが発生します。 Apacheの書き換えルールが開始され、パスが変更されます。

確かに、この問題に遭遇することはないかもしれませんが、私は遭遇しました。 別のWebサイトのjavascriptウィジェットを使用する必要があるサイトがあり、mysite.com / files / Images / myfileでグラフィックを見つける必要がありました。 ホストサイトでファイルを変更する方法がなかったので、サーバーでこれを行う方法を見つける必要がありました。 簡単な解決策は、特定のファイルに対して例外を作成する書き換え条件を作成することです。

ここに解決策は、次のとおりです。

RewriteCond%{REQUEST_URI}!/?files / Image / file1.jpg $
RewriteCond%{REQUEST_URI}!/?files / Image / file2.jpg $
RewriteRule ^([_ 0-9a-zA-Z-] + /)?files /(.+)wp-includes / ms-files.php?file = $ 2 [L]

書き換え条件は、書き換えルールの前に配置する必要があります。そうしないと、このトリックは機能しません。 同様の問題が発生した場合は、自分の目的に合わせてこの条件を簡単に変更できるはずです。 このソリューションは私にとってはうまく機能し、自分のデザインに合わないあまり望ましくない代替テキストではなく、カスタムグラフィックを置き換えることができました。 うまくいけば、それはあなたにもうまくいくでしょう。

どう思いますか?

このサイトはAkismetを使用して迷惑メールを減らします。 コメントの処理方法を学ぶ.