2011-07-08 6 views
2

WordPressで動作しているサイトがあります。私はサーバ上のサブディレクトリ(sandbox/)の下に新しいサイトをテストしています。新しいサイトでは、私は.htaccess書き換えルールを使用しています。これはWPに似ており、クリーンURLに書き換えられます。 WPで同等のパスを持つページがWPページにリダイレクトされていることがわかりました。サブディレクトリ、ヒットまたはミスを無視しているWordpress

たとえば、新しいサイトに正しくリダイレ​​クトされるURLがの1つのページがあります。しかし、別のページが/sandbox/events/にあり、ベースディレクターにリダイレクトされるのは/events/です。

人々の似たような問題を見て、私はRewriteCond %{REQUEST_URI} !sandbox/ [NC]と他の亜種(!^sandbox/.$など)を使ってみましたが、何の効果もないようです。以下の2つの.htaccessファイルをコピーしました。

お時間をいただきありがとうございます。状況を十分に説明してくれることを願っています。

ベースの.htaccess

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_URI} !sandbox/ [NC] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

サブディレクトリ(サンドボックス/)の.htaccess

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /sandbox/index.php [L] 

答えて

0

まあ..私はメインの.htaccessファイルに次の行をのみを使用している、とシミュレートされたセットアップですべて正常に機能しました。

RewriteCond %{REQUEST_URI} !^/sandbox/ [NC] 

Options +FollowSymLinksOptions +FollowSymLinks -MultiViewsに変更することをお勧めしますか?

URLに/sandbox/部分があり、/sandbox/.htaccessRewriteOption inherit行がない場合、親.htaccessのルールはまったく使用されません。


Apacheにはどの程度のコントロールがありますか?設定ファイル(httpd.confまたはhttpd-vhost.conf)を編集できますか?再書き込みデバッグ(RewriteLogLevel 9)を有効にしてその問題のURLを試してみると、何が起こっているのかが分かるはずです(PHPアプリケーション内からリダイレクトされている可能性があります)。それ以外に、あなたのルールは私のために絶対に素晴らしいものです。 (変更は最小限である)、これは良いアイデアですか..しかし、場合には、あなたがそのような行動の理由を把握することができません場合は、1にこれらの2つの.htaccessファイルへの参加を検討し


わかりません。

+0

-MultiViewsで修正されました。本当にありがとう!私はちょうど私の足を.htaccessに濡らしていて、以前にこのオプションについて聞いていなかった。 MultiViewsは、ユーザのURLに指定されていない場合、サーバが代替インデックスファイルを検索するようにします(この場合はwwwのようなものです.domain.com/sandbox/folder /)。私の場合は、ベースフォルダ内で最初に検索し、そこにindex.phpファイルがあり、それを提供していると推測しています。したがって、/ sandboxフォルダ内のindex.phpファイルを使用することはありませんでしたか? – mchestnut

+0

TBH、私は100%確信していません。いくつかの状況でどのくらい正確に動作するのでしょうか?時には、それは.htaccessファイルがウェブサイトルートの外側にあります。そのような場合、私は現在の状況に合わせる必要があります...どのモジュールが有効になっているか、どのオプションが設定されているか(Apacheの設定方法など)に依存することがありますので、何か問題はありませんが、GoDaddyでは動作しません。 'Options + FollowSymLinks -MultiViews'は、共有ホスティング環境の非常に一般的なレシピです。この特定のケースで私はあなたの結論に同意します。 – LazyOne

+0

まあ、それは共有ホスティングなので、確かにその請求書に適合します。再度、あなたの助けをありがとう。あなたは私に1トンの欲求不満を救った! – mchestnut

関連する問題