主站点使用.htaccess运行WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我要在子目录site.com/online/
中创建一个CodeIgniter应用程序
如果只是在子文件夹中添加CI .hta文件,它将无法正常工作。 CI .htaccess:
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|img|styles|js)
RewriteRule ^(.*)$ /index.php?/$1 [L]
是否可以组合两个.htaccess文件或在CI子文件夹中使用.htaccess执行某些操作? 谢谢。
UPD。 感谢您的回答,我尝试了所有变种,并最终将项目移至子域。
答案 0 :(得分:3)
首先,你的.htaccess应该是这样的:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} !^GET\s/+online/ [NC]
RewriteRule . /index.php [L]
</IfModule>
#Then add this for CI handling in the same .htaccess
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !index\.php [NC]
RewriteRule ^online/(.*)$ online/index.php?/$1 [L,NC]
然后您可以在online
子文件夹中删除(或重命名).htaccess。
答案 1 :(得分:1)
尝试使用codeigniter .htaccess:
RewriteEngine on
RewriteBase /online
RewriteCond $1 !^(index\.php|robots\.txt|img|styles|js)
RewriteRule ^(.*)$ /index.php?/$1 [L]
否则对该子文件夹的所有请求都将被重定向到wordpress。
答案 2 :(得分:1)
您是否设置了AllowOverride?根据{{3}},您需要允许FileInfo
替换mod_rewrite。