1

以下を除くすべてのWordPressリライトが機能するようにしたいと考えています。

  • 静的な html ページとしてのホームページ。コンテンツはルート フォルダーの index.html にあります。
  • /businessbusiness静的 html ページを含むルート ディレクトリのフォルダーにルーティングされます。

インデックスを. /index.html [L]通常のワードプレスの書き換えのどれにも設定しないと機能しません。ただし、設定した場合、 URLで提供する必要があるHTMLファイルを含むDirectoryIndex /index.htmlリライトを機能させる方法がわかりません。完全な書き換えルール:/businesshttp://mywebsite.com/business

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L]
RewriteRule . /index.html [L]

単なる回答ではなく、あなたが提供する行の各部分が何をするのかを説明することで、私自身や他の人が次に自分でこれを引き受ける方法を理解するのに役立つかもしれません.

更新:ルールはまだ機能していません。/wp-admin はずっと機能していました。

4

4 に答える 4

1

デフォルトのWordPressの書き換えに固執し、DirectoryIndexを追加して.phpファイルよりも.htmlファイルを優先するようにしてください。

DirectoryIndex index.html index.php

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

したがって、リライトは、要求されたファイルまたはディレクトリが欠落している場合にのみ発生します(!-fおよび!-dフラグを指定したRewriteConds)。また、ディレクトリ(ルートディレクトリなど)にindex.phpとともに静的なindex.htmlがある場合は、最初に提供されます。

http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryindex

于 2012-10-10T09:57:42.750 に答える
0

試す:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteRule ^business/ - [L]
RewriteRule ^index\.php$ - [L]
RewriteRule ^$ /index.html [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
于 2012-09-29T00:15:48.927 に答える
0

このコードをルートの HTACCESS ファイルに置き換えます

# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine Off

SetEnv DEFAULT_PHP_VERSION 53

DirectoryIndex index.cgi index.php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

また、URLをデータベースから変更します...

于 2012-10-09T06:37:57.473 に答える
-1

次の 2 つの問題を解決する必要があります。

  1. 誰かがフロント ページを必要とするたびに、特定の HTML ファイルを提供します。
  2. WordPress と一緒に静的ディレクトリから静的ファイルを提供します。

最初の問題を解決するには、index.html の名前を front-page.php に変更し、現在のテーマ フォルダー内に移動します。次に、WordPress は、テンプレート階層に従って、誰かがフロント ページを要求するたびにそれを提供します (または、テンプレートとして使用します) 。

静的ファイルを実際に提供する場合と比較して、このソリューションにはコストがかかります: 誰かがフロントページを要求するたびに、WordPress は読み込まれます。フロントページを静的に提供する目的が、ページが読み込まれるたびに WordPress や PHP を読み込まずにサーバー リソースを節約することである場合は、キャッシュ プラグインを検討する必要があります。

2 つ目の問題は、WordPress の標準の書き換えルールで既に静的ファイルとディレクトリが許可されているため、まったく問題になりません。台詞

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

要求された URL が実際のファイル (-f) またはディレクトリ (-d) である場合、WordPress へのリダイレクトは行われないことを意味します。したがって、/business ディレクトリにアクセスするための追加の書き換えルールは必要ありません。

標準の WordPress 書き換えルールを以下に説明します。

RewriteEngine On                    # Turn on the rewrite engine
RewriteBase /                       # Use the domain root as the base of rewrites
RewriteRule ^index\.php$ - [L]      # If someone requests the WordPress entry point, stop here
RewriteCond %{REQUEST_FILENAME} !-f # If the requested URL is not an actual file ...
RewriteCond %{REQUEST_FILENAME} !-d # ... and if the requested URL is not an actual directory ...
RewriteRule . /index.php [L]        # ... then rewrite it to the main WordPress entry point

/index.php が読み込まれると、このファイルは WordPress とそれに付随するすべてのものを順番に読み込みます。

于 2012-10-05T12:46:44.363 に答える