共存するCodeigniterとWordpressのインストールでhtaccessヘルプ

ここで私の意図は、同じドメインの下にブログを持つcodeigniterアプリを持つことです。両方の管理者は別々にする必要があります。

ディレクトリ構造は次のとおりです。

httpdocs/.htaccess
httpdocs/application/ <== CI installation
httpdocs/blog/        <== WP installation
httpdocs/blog/.htaccess

URLは次のようになります。

mysite.com         <== CI
mysite.com/tools   <== CI
mysite.com/forum   <== CI
mysite.com/blog    <== WP

私はこのチュートリアルに従ってセットアップし、それがうまくいったうまく。

私のcodeigniterアプリとWP ブログのホームページ の両方が正しいURL、スタイルなどで正確に表示されます。

通常、WPバックエンドのものについては、 mysite.com/blog/wp-admin にアクセスすることもできます。

私の問題は、実際のブログ記事にアクセスしようとするときです。たとえば、次のようになります。

mysite.com/blog/fiction/what-is-going-on/

私がこれを行うと、 Codeigniterの404エラーページ が表示されます。

私のルート.htaccess(httpdocs/.htaccess)はこれです:

RewriteEngine On
RewriteBase /

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

RewriteCond $1 !^(index\.php|robots\.txt|blog|assets)
RewriteRule ^(.*)$ index.php/$1 [L]

私のブログ.htaccess(httpdocs/blog/.htaccess)はこれです:

# BEGIN WordPress

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

# END WordPress

私が間違っていることは何か考えていますか?リクエストされた場合、より多くの情報を投稿します。前もって感謝します。

1

3 答え

解決策を使用することができます

CI .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

そして

WP .htaccess

# BEGIN WordPress

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

# END WordPress

それがトリックでした。すべてのページが問題なく表示されるようになりました。

2
追加された

私は通常、CI .htaccess (ルートフォルダの1つ)に2組の条件を使用します。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/(.*)$ blog/index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

これにより、まずブログURLの処理が可能になり、次にCI URLを処理します。アプリケーションで blog という用語を使用してコントローラやルートを使用しないように注意する必要があります。

0
追加された
thx @dakdadが動作していない - 私はまだブログの投稿のCIの404ページ - これを解決する方法の他のアイデアを得る?
追加された 著者 pepe,
@dakdad私たちがユーザーのためにブログを動かす際にあなたのコントローラに「ブログ」を使用する必要がある場合はどうすればよいですか?
追加された 著者 Stefan P,
@sakdadこれはHtaccessの書き換えルールではないでしょうか?ホストがサブドメインかカスタムドメイン上のブログではなく、ブログであるかどうかを検出できますか?
追加された 著者 Stefan P,
@Stefan同じuriは2つのものを提供することはできません、それらの1つは異なっている必要があります。
追加された 著者 dakdad,

あなたのWordpressの.htaccessで3つのことを試してみましょう(CIには触れないでください)。

まず、index.phpの前にあるスラッシュを削除してみてください:

# BEGIN WordPress

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

# END WordPress

それでも問題が解決しない場合は、RewriteBaseを/ blog /:に設定してみてください。

# BEGIN WordPress

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

# END WordPress

最後に、どちらも問題がなければ、最後にindex.php行に "/ blog /"を手動で追加してみてください:

# BEGIN WordPress

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

# END WordPress
0
追加された
私の答えの代わりにあなたのコードを使用する理由は何ですか?私の仕事はうまくいくようですが、私はそれをどのようにまとめているのか、またあなたのソリューションに利点があるかどうかについて意見がありますか
追加された 著者 pepe,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com