【问题标题】:CodeIgniter URL Segment-BasedCodeIgniter 基于 URL 段
【发布时间】:2012-06-28 21:34:13
【问题描述】:

我希望我的 URL 看起来像:www.domain.com/controller/view/args 而不是 index.php?/controller/view/args。实际上,我 从不 想要验证 url “index.php?...”。谁能给我一个关于如何强制执行此行为的提示,因为当我这样做时:A) redirect()B) 手动输入“index.php””。 ..” url 变成了那个丑陋的模式。

这是我的.htaccess文件(我不知道是否需要这个文件,只是从网上复制+粘贴):

#http://codeigniter.com/wiki/Godaddy_Installaton_Tips/

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]

这是我的 config.php:

$config['base_url'] = '';
$config['index_page'] = 'index.php?';
$config['uri_protocol'] = 'AUTO';
$config['enable_query_strings'] = FALSE;

这就是改变行为的原因:

redirect('...blah', 'either location or refresh');

【问题讨论】:

    标签: php codeigniter codeigniter-2 codeigniter-routing


    【解决方案1】:

    您实际上需要在 codeigniter 目录的根目录中的 .htaccess 文件(无论 index.php 在哪里)。 .htaccess 文件负责管理参数的重写。如果您查询 yoursite.com/?controller/model,它将与 index.php 在那里一样工作。 "?controller/..." 仍然存在,但 index.php 将不会存在,只要您记得始终链接到非 index.php 版本。包含的 .htaccess 在大多数情况下都可以使用(尤其是 apache)。如果 codeigniter 不在您网站的根目录中,您可能需要进行修改(即 public_html/somedir/{codeigniter_goes_here})。

    【讨论】:

    • 是的,.htaccess 位于 index.php 旁边的根目录中。我可以同时访问“/a/b/c”和“index.php?/a/b/c”,但是每当我调用“redirect(...)”时,它会将 url 从前者更改为后者(坏) .
    • 尝试改变'index.php?'只是'?'。
    【解决方案2】:

    除了需要将 .htaccess 放在 codeigniter 安装的根目录(与 index.php 相同的位置)之外,您还需要确保 mod_rewrite 在您的 Apache 安装上运行,否则 . htaccess 文件将被忽略。

    此外,您需要在 Apache 虚拟主机中设置 AllowOverride 指令(请参阅http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride) - 它应该设置为:

    <VirtualHost *:80>
    ...
    AllowOverride All
    ...
    </VirtualHost>
    

    你也应该改变:

    $config['index_page'] = 'index.php?';
    

    收件人:

    $config['index_page'] = '';
    

    【讨论】:

    • 我的天啊...你已经一针见血了(交叉手指)。如果我使用 mod_rewrite,我必须设置 ['index_page'] = '',就像 cmets 告诉我的那样...... :-/
    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 2012-08-28
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 2013-07-07
      相关资源
      最近更新 更多