5

独自の .htaccess を持つhttp://website.com/sub/index.htmlなどのサブディレクトリでは、何らかの理由で、このディレクトリの上のディレクトリにある Wordpress 用の 404 ページが表示されます。

サブディレクトリの .htaccess:

ErrorDocument 404 /404.html

メイン ディレクトリの .htaccess:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^website.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.website.net$
RewriteRule ^foghelper.php$ http://website.net/subdirone/ [R=301,L]
RewriteRule ^foghelper.php$ http://website.net/subdirtwo/ [R=301,L]
# DO NOT REMOVE THIS LINE AND THE LINES ABOVE jNLK5d:REDIRECTID


# 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

hta にあったリ​​ンクは検閲されています。

編集:

エラーがまだ存在しているように見えるRewriteCond %{REQUEST_URI} !^/?sub/前に追加すると。RewriteRule . /index.php [L]

4

2 に答える 2

0

すべてがwordpressを介してルーティングされるため、のようなリクエストが/sub/no_file.html存在しない場合、wordpressはとindex.phpの両方の条件(既存のファイルでも既存のディレクトリでもない)を満たしているため!-f!-dwordpressを介してルーティングされます。次に、リソースが見つからないと判断した/sub/no_file.htmlため、独自の404ファイルを表示します。

/sub// subに移動するリクエストがwordpressのルーティングをバイパスして、存在しないファイルがリクエストされた場合に配信されるようにする場合は、wordpressルールの/404.html直前に次の行を追加して次のようにすることができます。RewriteRule . /index.php [L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?sub/
RewriteRule . /index.php [L]
</IfModule>
于 2012-07-25T04:10:46.083 に答える
0

デフォルトの .htaccess-file は、必要な動作を既にサポートしています。

# 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

魔法は RewriteCond で始まる行にあります。これらは、ルール RewriteRule を適用するように Apache に指示します。/index.php [L] (「任意の URL が index.php に移動する」という意味)、URL が既存のファイル !-f または既存のディレクトリ !-d でない場合のみ。

したがって、これはデフォルトで機能するはずです。既存のファイルにアクセスしようとすると、Wordpress の書き換えルールは適用されません。

于 2013-01-15T16:56:31.017 に答える