2011-11-25 46 views
1

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

ディレクトリ構造はこれです:

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 

私はセットアップにthis tutorialに続き、それがうまく働きました。

私CodeIgniterのアプリとWP ブログのホーム・ページどちらが正確に彼らが必要として表示、正しいURLを持つ、スタイルなど

私もmysite.com/blog/wp-adminにアクセスすることができます通常はWPバックエンド用です。

私は例えば、実際のブログの記事にアクセスしようとすると、私の問題がある:私はこれを行うと

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 /ブログ/ htaccessファイル)これです:

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

何I任意のアイデア間違ってる?リクエストされた場合、より多くの情報を投稿します。前もって感謝します。

答えて

2

OKは、ソリューションを使用することです

CIの.htaccess

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

WP .htaccessのトリックをやった

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

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

0

は、私は一般的に最初のブログのURLの処理が可能になりますCI .htaccess(ルートフォルダ上の1)

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] 

これに条件の2セットを使用して、CIのURLを扱います。あなたのアプリケーションに用語blogを使用しているコントローラやルートがないように注意する必要があります。

+0

THXの@dakdadが、それは働いていない - 私はまだブログの記事のためのCIの404ページを取得する - これを解決する方法上の任意の他のアイデア? – pepe

+0

@dakdad私たちがユーザーのためにブログを実行しているときにあなたのコントローラーで「ブログ」を使用する必要がある場合はどうすればよいですか? –

+0

@Stefan同じURIは2つのものを提供することはできません。そのうちの1つは異なる必要があります。 – dakdad

0

私は3つのことをしようとするだろうあなたのWordpressの.htaccess(CI 1に手を触れないでください - それは正しく見える):

まず、あなたのインデックスの前からスラッシュを削除してみてください。PHP:

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

問題が解決しない場合は、代わりに、/ブログ/するでRewriteBaseを設定してみてください:それらの事のどちらが動作している場合

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

最後に、あなたは「追加手動で試すことができます最後に、あなたのindex.phpラインへ/ブログ/」:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 
# END WordPress 
+0

私の答えの代わりにあなたのコードを使用する理由は何ですか?私の仕事はうまくいくようですが、私はそれをどのようにまとめているのか、またあなたのソリューションに利点があるかどうかについて意見がありますか – pepe

関連する問題