【发布时间】:2016-06-12 01:12:55
【问题描述】:
我使用 Xampp 和 CodeIgniter 开发了一个 Web 应用程序。处理干净路由的最佳方法是将 VirtualHost 设置为指向 xampp/apache/conf/httpd.conf 中包含项目的文件夹,然后在 route.php 文件中使用路由路由,例如,
$route['page1'] = "Page1Controller/page1Function";
我使用这样的 href 或标题,使用 root 作为基本文件夹:
href="/page1"
所有这些都在本地运行良好,我从不使用base_url() 或类似的功能。
切换到生产服务器,我显然没有任何权限,除了我的个人文件夹和子文件夹,所以当我执行它时,根文件夹成为所有域的根,而不仅仅是我的项目文件夹。
我尝试了base_url(),但它不起作用,找不到页面,即使不使用$route。
有没有办法在不重构代码中的所有链接的情况下处理这个问题,或者重构的方法是什么?
编辑
我现在使用"./page1" 来访问index.php 文件夹的位置,而不是使用"/page1"。但是,我仍然无法使用 php 或 html/js 访问其他页面。
【问题讨论】:
-
你能分享你的.htaccess文件吗?顺便问一下主页是否有效?
-
确保控制器名称以大写字母开头,例如“home.php”应命名为“Home.php”并将
base_url()留空。 -
@Dray 我已经做到了,谢谢。我将编辑我的问题
-
@TarasBudzyn 是的主页有效。对于 .htaccess,我使用标准重写规则来删除 index.php: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/ $1 [L]
-
试试这个:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule>
标签: php apache codeigniter xampp