0

これは単純なはずです-私がどこで間違っているのか理解できません:

WordPressは次の場所にインストールされています:http://example.com/gallery/cmsそしてサイトをhttp://example.com/gallery 表示したい

WordPressアドレスをhttp://example.com/gallery/cmsに設定し、サイトアドレスをhttp://example.com/galleryに設定しています。

.htaccessとindex.phpを/galleryフォルダーにコピーしました。.htaccessには次のコードが含まれています。

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

index.phpには、次のコードが含まれています。

define('WP_USE_THEMES', true);
require('./cms/wp-blog-header.php');

ホームページは正常に読み込まれますが、内部ページは「見つかりません」エラーが発生しますhttp://playstartshere.com/gallery/specs/The requested URL /gallery/specs/ was not found on this server.

どこが間違っているのですか?index.phpを次のように変更してみました:

define('WP_USE_THEMES', true);
require('./gallery/cms/wp-blog-header.php');

しかし、それはサイトを完全に壊しました。

編集:答え

Apacheは確かに正しく構成されていませんでした。RewriteEngineが有効になっていませんでした。ただし、.htaccessも間違っていました。上記のような構成の正しい.htaccessは次のとおりです。

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

それが他の誰かを助けることを願っています。

4

1 に答える 1

0

/gallery/specs/このルールに一致します:

RewriteRule ^index\.php$ - [L]

アクセスをブロックする

試してみてください/gallery/.htaccess

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

/index.phpを付加せずに、apacheは現在のディレクトリを検索します

編集

もう一度別のアプローチで:

すべてのワードプレスのURLをhttp://example.com/gallery に設定し、すべてのワードプレスファイルを/ gallery/cmsに配置します

/ gallery/cmsに.htaccessを1つ入れます

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

2番目の.htaccessを/galleryに配置します(index.phpなし)

RewriteEngine On
RewriteCond %{REQUEST_URI} !/gallery/cms
RewriteRule ^(.*)$ /gallery/cms/$1 [L]
于 2012-05-10T07:09:59.447 に答える