0

私はかなり単純なウェブサイトを作成しています。ルート フォルダーには 2 つの静的ページ (ホームとポートフォリオ) があり、Wordpress は にあり/blogます。静的ページには、require_once("blog/wp-config.php");.

ポートフォリオ ページは、Javascript (History.JS または Crossroads/Hasher のいずれか) を使用して、カテゴリとアルバムを表す URL を「プッシュ」します。たとえば、左側の [結婚式] をクリックするportfolio/weddingsと 、アルバムは になりますportfolio/weddings/jane-jon-smith。これらのファイルは、直接アクセスしたときに使用できる必要があります (アルバムへのリンクをお送りします)。

index.php現在、とから静的ページにアクセスできるように設定していますportfolio.php。次の .htaccess ディレクティブを使用して、ファイル拡張子を削除できました。

# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php [L]

しかし、 などの URL にアクセスしようとするとportfolio/weddings、有効なディレクトリまたはファイルではないため、404 エラーが発生します。私は検索してきましたが、拡張機能を削除する方法以外に関連するものを見つけることができないようです(私は働いています)。

ファイル拡張子を削除し、これらの「偽の」ディレクトリへの直接アクセスを許可するにはどうすればよいですか?

4

2 に答える 2

0

質問にコメントを投稿した後、「portfolio/*」に一致するものはすべてportfolio.phpにリダイレクトする必要があるのではないかと思いました。そこから、いくつかの関数を使用してパスを処理できます(現在は正常に機能しています)。

私がしたことは、質問に記載したルールの直後に次の行を追加することだけでした:

RewriteRule ^portfolio/([^/]+) /portfolio.php?$1 [NC]
于 2012-10-20T02:15:49.213 に答える
0

Wordpress は、フロント コントローラーを使用して、いわゆる「疑似ディレクトリ」を作成します。URL のパラメーターを取得し、それに応じてそれをアプリケーション コントローラーにルーティングして、ビュー レイヤーまたはクライアントに表示されるものを構築します。

WordPress がこのリクエストを適切にルーティングするには、各ポートフォリオ エントリに対応するページが必要です。これを行うには、Wordpress のデフォルトの機能を使用できます。.htaccess ファイルへの変更を元に戻し、代わりに設定内のパーマリンク設定を「投稿名」に変更します。

静的ページ用のカスタム ロール「ウィジェット」よりも、組み込みの動的ポートフォリオを使用する方がおそらく簡単でしょう。適切な WP テーマでポートフォリオ アイテムを表示するように静的ページを設定できます。

Wordpress の素晴らしいところは、ダッシュボードの設定を変更するだけで、非常に高度なことができることです。12 月に WP が次のバージョンをロールアウトするときに、独自のコードのトラブルシューティングを行う必要がないため、各機能で何ができるかを調べることに時間を費やすことをお勧めします.

于 2012-10-20T01:12:31.560 に答える