0

我有两个 CodeIgniter v2.1.4 项目在 2 个单独的子目录中运行,即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 ,将prod隐藏在 URL 中。
  • 如果用户访问www.abc.com/prod,用户将被重定向到www.abc.com/prodprod显示在 URL 中。
  • 如果用户访问www.abc.com/dev,用户将被重定向到www.abc.com/dev,无需在 URL中隐藏dev 。

下面是我的.htaccess (01)

RewriteEngine On
RewriteBase /prod
RewriteRule ^(.*)$ /prod/index.php?/$1 [L]

.htaccess (02)

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]

.htaccess (03)

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]

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

  • www.abc.com/prod/assets/js/jquery.js ✔ 它有效!
  • www.abc.com/assets/js/jquery.js ×失败...
4

1 回答 1

0

下面应该是您的 .htaccess (01)

RewriteEngine On

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

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

您可以保留其余代码。

于 2013-10-08T05:35:01.980 回答