Regex 如何编写.htaccess来访问不同环境中的多个CodeIgniter项目?

Regex 如何编写.htaccess来访问不同环境中的多个CodeIgniter项目?,regex,.htaccess,codeigniter,mod-rewrite,Regex,.htaccess,Codeigniter,Mod Rewrite,我有两个CodeIgniter v2.1.4项目运行在两个独立的子目录中,即dev和prod。以下是文件结构: / (root) .htaccess (01) - dev - .htaccess (02) - application - system - assets - js - css - img - prod - .htaccess (03) - ap

我有两个CodeIgniter v2.1.4项目运行在两个独立的子目录中,即devprod。以下是文件结构:

/ (root)
.htaccess (01)
  - dev
      - .htaccess (02)
      - application
      - system
      - assets
          - js
          - css
          - img
  - prod
      - .htaccess (03)
      - applications
      - system
      - assets
          - js
          - css
          - img
我想做的是

  • 如果用户转到www.abc.com,则会将用户重定向到www.abc.com/prod,从而在URL中隐藏prod
  • 如果用户转到www.abc.com/prod,用户将被重定向到www.abc.com/prod,prod将显示在URL中
  • 若用户转到www.abc.com/dev,则用户将被重定向到www.abc.com/dev,而无需在URL中隐藏dev
下面是我的.htaccess(01)

.htaccess(02)

.htaccess(03)

问题:现在不起作用的是资产文件夹中的文件必须在URL中有dev或prod才能加载,例如

  • www.abc.com/prod/assets/js/jquery.js✔ 它起作用了!
  • www.abc.com/assets/js/jquery.js×fail。。。
下面应该是您的.htaccess(01)

您可以保持代码的其余部分不变

RewriteEngine On
RewriteBase /prod
RewriteRule ^(.*)$ /prod/index.php?/$1 [L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|assets|robots\.txt|changelog\.html)
RewriteRule ^(.*)$ /dev/index.php?/$1 [L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|assets|robots\.txt|changelog\.html)
RewriteRule ^prod/(.*)$ /prod/index.php?/$1 [L]
RewriteEngine On

RewriteRule ^(assets/.*)$ /prod/$1 [L,NC]

RewriteRule !^prod/ /prod/index.php?%{REQUEST_URI} [L,NC]