У меня возникли некоторые проблемы с приложением Codeigniter в подпапке на моем сервере вместе с установкой WordPress в корневом каталоге документа. Если я спрячу index.php
URL-адреса Codeigniter с .htaccess
/codeigniter/.htaccess
DirectoryIndex index.php <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond $1 !^(index\.php|user_guide|robots\.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] </IfModule> <IfModule !mod_rewrite.c> ErrorDocument 404 index.php </IfModule>
И заставить WordPress игнорировать /codeigniter
с RewriteCond %{REQUEST_URI} !^/(codeigniter).*$
/.htaccess
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_URI} !^/(codeigniter).*$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Затем перейдите на сайт www.mysite.com/codeigniter/my_controller/my_function
, я получаю ошибку 404. No input file specified.
Я нашел здесь , что добавление ?
после RewriteRule ^(.*)$ index.php
решает ошибку Codeiginiter 404.
/codeigniter/.htaccess
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Однако теперь я получаю ошибку WordPress 404, поэтому кажется, что я заменю index.php
на index.php?
в /codeigniter/.htaccess
, правило перезаписи WordPress в /.htaccess
, RewriteCond %{REQUEST_URI} !^/(codeigniter).*$
игнорируется. Есть ли лучший способ справиться с этим?
Заранее спасибо!
RewriteBase
в каталоге codeigniter должен сказать /codeigniter/
RewriteBase /codeigniter
В противном случае переписывание в index.php
заканчивается переходом на wordpress-маршрутизатор.