重写规则中是否存在前导“/”

时间:2014-03-30 12:45:52

标签: php .htaccess codeigniter

我有一个codeigniter网站,其链接结构已损坏。初始页面正常加载。我的Navbar看起来像:

<a class="brand" href="#">myproject</a>
          <div class="nav-collapse">
            <ul class="nav">
              <li class="active"><a href="#">Home</a></li>
              <li ><a href="http://localhost/projectname/basecontroller/Facts">Facts</a></li>
              <li ><a href="http://localhost/projectname/basecontroller/about">About</a></li>
              <li ><a href="http://localhost/projectname/basecontroller/contact">Contact</a></li>
              <!--<li ><a href="http://localhost/projectname/basecontroller/privacy">Privacy</a></li>-->
            </ul>
          </div><!--/.nav-collapse -->

我已使用根目录中的以下.htaccess文件在本地测试它:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|assets|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L] 

这似乎通过转动来修复目录结构(我假设):

http://localhost/projectname/basecontroller/contact

成:

http://localhost/projectname/index.php/basecontroller/contact

如果我将.htacess中的最后一行更改为:

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

它适用于我的生产服务器,但不适用于我的wamp

有人可以解释领先“/”的重要性吗?

1 个答案:

答案 0 :(得分:0)

试试这个:     RewriteRule ^(。*)$ index.php?/ $ 1 [L]