web-dev-qa-db-ja.com

サブフォルダーのWordpress

WordPressとCodeIgniterをサブフォルダーで区切って同じドメインで実行しています。これがベストプラクティスではないことはわかっていますが、CodeIgniterはWordPressに完全に移行するまでは一時的なものになるでしょう。

WordPressとCodeIgniterを衝突させずに実行させるために、誰かが.htaccessファイルを使って手伝ってくれるのかどうか疑問に思いました。

何らかの理由でWordPressの設定がサイト全体を引き継ぎます。

public_html/
 .htaccess (blank)
 /wordpress/
 /codeigniter/

WordPressにアクセスするにはdomain.comを使い、CodeIgniterを使うにはdomain.com/codeigniterを使います。すべてうまくいきますが、CodeIgniterはWordPressサイトにリダイレクトし続けます。

.htaccess

こんにちは - はい、私は両方のディレクトリpublic_html /とwordpress /に.htaccessをコピーしました

# 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
1
misterzik

あなたの.htaccessルールは、それらが下で定義されているレベルからカスケードしています。そのため、この場合は、ルートに設定した規則はすべて、両方のサブフォルダに適用されます。

あなたが必要です:

  1. ルート内のサイト全体に影響を与えるルールのみ
  2. サブフォルダー内のすべてのWordPressルール
  3. CodeIgniterも同様です。
1
Rarst

たぶん、このようなことを試してみてください。

あなたのルート上の.htaccess

# 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

.htaccessディレクトリの中の/wordpress/

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

# END WordPress

.htaccessディレクトリの/codeigniter/

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

# END WordPress
1
J Garcia