我有一个小问题需要解决。我有两个并行运行的应用程序(CodeIgniter和ExpressionEngine),我需要将特定的URL模式路由到CI以及其他所有的EE模式。到目前为止,这主要是工作,但有一个小细节。这是我目前的代码:
# Rewrite requests for anything that's not a CI controller or physical file/folder to ExpressionEngine
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !(admin|cron|fst_reporting|playcatch|ppv|purchase|reporting|xml) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]
# Route everything else to CodeIgniter
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /app/index.php/$1 [L]
但是我也想推送任何请求:
/training
/training/
/training/programme/something
/training/programme/something/
到第一个条件块中的EE,然后强制请求一个特定的URL模式
/training/something
到CI应用程序(如第二个条件块中所示)。
我遇到的问题是尝试将上述要求混合到我现有的条件语句中,理想情况下我想说“任何不等于我的代码点火器控制器OR等于/ training或/ training / program / something” 。与此同时,我仍然需要能够将对/ training / something(其中某些内容是随机字符串)的请求路由到CI应用程序。
有什么想法吗? :)
答案 0 :(得分:2)
也许是这样的:
RewriteBase /
RewriteCond %{REQUEST_URI} ^/training(/)?(/programme/something)?(/)? [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !(admin|cron|fst_reporting|playcatch|ppv|purchase|reporting|xml) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L]
希望有所帮助。