大家早上好,我希望这将是一件容易的事!(我还没喝咖啡呢,怎么起这么早?!)
无论如何.. 为您提供了一个两部分: 第一个(基本)问题,我试图从我的链接中删除 index.php(这似乎几乎是不可能的,感谢 hostgator :))。经过一堆搜索,我已经到了 /page 重定向到 /index.php/page 的地步。现在这总比没有好,但当然仍然不理想。我必须使用 [R] 来做到这一点。我的 .htaccess 是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [R,L]
第二个(硬)问题我需要从 url 中删除 index.php,但仍要确保显示正确的页面控制器(即 url 中的页面)。我正在使用 PATH_INFO 来获取 var 并显示正确的页面,并且当 index.php 存在时它可以工作。
但是由于某种原因,当您从最后一个 RewriteRule 中取出 R 时,/page 总是默认为主 index.php 模板。这就像 .htaccess 或任何在我的网站可以处理页面之前将 PATH_INFO 重写为空的东西。我想我需要在 .htaccess 重写它之前锁定 PATH_INFO 。
对于我坚持的一些测试var_dump(path_segments());
,当在 /index.php/page 上时它给出:array(2) { [0]=> string(0) "" [1]=> string(10) "proper-page" }
. 但是,当您将 R 从上述重写规则中取出并仅使用 /page 进行访问时,它只会给出:
array(2) { [0]=> string(0) "" [1]=> string(0) "" }
.
现在我什至不知道我是否需要担心第二个问题,如果有一个简单的方法来做第一个。但至少这就是我现在想要弄清楚的一切。感谢我能得到的所有帮助!