我有一个像这样的目录地图
root
---.htaccess
---site
------application
------css
------...
---blog
...
我在这台服务器上运行Codeigniter,我的网站和其他内容都在应用程序文件夹中。我想在同一台服务器上运行一个wordpress博客,但是在兄弟文件夹中。
mysite.com/controller/action/parameter1/...
之类的所有请求都必须调用site/application
文件夹中的controller.php,并按预期触发传递parameter1,parameter2等的操作。
除非"控制器"是"博客"。像mysite.com/blog
这样的请求必须重定向到blog/
文件夹,传递所有参数,以及我将要运行WP的位置
关于如何编写.htaccess的任何想法?目前我得到以下内容(我仍然创建了site
和blog
文件夹,所有codeigniter文件都在根目录中)
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|styles)
RewriteCond $1 !\.(ico|js|css|jpg|png|gif|html|ico?g)$
RewriteRule ^(.*)$ index.php/$1 [L]
答案 0 :(得分:1)
只需将blog
从您的codeigniter规则中排除为
RewriteCond $1 !^(blog/?$|index\.php|images|robots\.txt|styles)
RewriteCond $1 !\.(ico|js|css|jpg|png|gif|html|ico?g)$
RewriteRule ^(.*)$ index.php/$1 [L]
或者,您可以使用
排除所有现有文件和目录RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
将域映射到各自的文件夹(假设名称匹配)
RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+)\.com [NC]
RewriteRule ^(.*)$ /%1/$1 [L]
因此,blog.com/post
会转到/blog/post
而site.com/page
会转到/site/page
。