【发布时间】:2014-05-09 18:20:19
【问题描述】:
我有一个链接结构损坏的 codeigniter 网站。初始页面正常加载。我的导航栏看起来像:
<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 本地
有人能解释一下前导“/”的意义吗?
【问题讨论】:
-
您是指定 url(或域)作为您提供的示例(硬编码)还是使用一些辅助函数?
-
这是 codeigniter,所以我使用 li>
-
如果您的 htaccess 在
projectname文件夹中并且您使用index.php/$1它将起作用,因为这意味着in the same folder, use index.php。请注意,这与/projectname/index.php/$1相同(您可以使用RewriteBase)。但是,如果您使用/index.php/$1这意味着in the ROOT folder, use index.php这就是为什么它不起作用(甚至奇怪的是它在您的产品上起作用) -
你能输入贾斯汀的答案吗?
标签: php .htaccess codeigniter