在根目录下安装CodeIgniter,在子目录下安装WordPress

1hdlvixo  于 2023-03-27  发布在  WordPress
关注(0)|答案(4)|浏览(173)

我想创建一个网站,其中的主要网页将从CodeIgniter服务.我将使用WordPress的/博客/子目录来托管博客.就是这样!我不想要别的.只是为了确保:
example.com/somepage/ 调用CI控制器,而example.com/blog/some-post/由Wordpress处理。
我不需要CI和WP之间的任何集成或交互。
是否有可能以这种方式安装?如果没有,有什么变通方法,以便我可以实现目标?
感谢和问候,Masnun

p1iqtdky

p1iqtdky1#

我想你可以在你的网站的根目录下使用一个.htaccess文件来实现这个功能。如果blog是安装WordPress的子目录的名称,并且你希望example.com/blogWordPress处理www.example.com,试试这个方法看看是否有帮助:

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

nxowjjhe2#

1、Rich的方法
另外,如果你使用的是像CI文档中建议的.htaccess文件,它应该通过将WP目录直接放入Web根目录来工作。

RewriteEngine On
RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css folders, and the robots.txt file
#Submitted by Michael Radlmaier (mradlmaier)

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

由于RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d,任何直接对Web服务器上的真实的文件的调用都将直接由Apache提供服务,其他URI将由CI的路由机制处理。
注意,我们使用了最后一个RewriteCond指令来排除对某些文件的调用,包括我们的assets dir(包含images/css/js静态文件)和'corporate' dir(在本例中包含博客)。
虽然这个例子没有使用wordpress,但它有自己的url重写和路由系统。
总之,如果你想使用WP URL重写,你必须使用一个特定的RewriteCond语句,如果不是,它可以不使用它。

xwmevbvl

xwmevbvl3#

它应该就像你描述的那样工作,不需要任何复杂的配置。只要在你的根目录下安装codeigniter,然后创建一个博客目录,把wordpress放在那里。

vuktfyat

vuktfyat4#

你从来没有提到你使用的是哪个服务器。我的网站也出现了同样的错误。后来我发现htaccess不支持nginx。
所以我简单地在我的nginx配置文件中做了2个位置块。

location / {
                # Check if a file or directory index file exists, else route it to index.php.
                try_files $uri $uri/ /index.php;
http2_push_preload on;
        }
location /updates/ {
  try_files $uri $uri/ /updates/index.php;
}

现在我的codeigniter和Wordpress都工作了。

相关问题