Назад | Перейти на главную страницу

Остановите Wordpress от взлома URL-адресов CodeIgniter с помощью .htaccess

Wordpress установлен в корневом веб-каталоге:

/var/www/html/

CodeIgniter установлен в подкаталоге:

/var/www/html/ciapp/

Когда я получаю доступ http://www.mysite.com/ciapp/ доступ к главному контроллеру CI выполняется правильно.

Однако, если я попытаюсь напрямую получить доступ к своему основному контроллеру CI, вот так:

http://www.mysite.com/ciapp/main/

Я получаю 404-ю страницу Wordpress. Кроме того, если я попытаюсь получить доступ к функции своего основного контроллера следующим образом:

http://www.mysite.com/ciapp/main/myfunction/

Я тоже получаю ту же страницу 404.

Таким образом, Wordpress по умолчанию игнорирует каталог / ciapp /, но не игнорирует любые URL-запросы, которые добавляются к нему. Вот мой Wordpress .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

Итак, какой тип RewriteCond мне нужно добавить в Wordpress .htaccess, чтобы он игнорировал каталог / ciapp / и все запросы URI, которые также используют этот каталог?

Я пробовал это:

RewriteCond %{REQUEST_URI} !^/?ciapp

Но, похоже, это не имело никакого эффекта.

если url == любой из них, НЕ используйте index.php для их обслуживания.

RewriteCond $1 !^(index\.php|css|img|forums|ciapp|robots\.txt)

иначе используйте index.php

RewriteRule ^(.*)$ index.php/$1 [L] 

если url == ciapp / *, используйте ciapp / index.php для их сервера.

RewriteRule ^(.*/)?ciapp/(.*) /ciapp/index.php/$1 [L]