0

这是我的网址目前的样子:

http://mysite.com/?page=1

我怎样才能使这项工作?:

http://mysite.com/page/1

StackOverflow 上有一个帖子问了同样的问题。但是公认的解决方案对我不起作用。因为我正在使用 Codeigniter 并且我的页面导致 404 可能是因为 CI 站点的 url 模式是:

域/控制器/方法

系统假设我正在请求一个名为“page”的控制器和一个名为“1”的方法,这两者当然都不存在。或者也许是由于与我的 htaccess 文件中的其他代码冲突(我从 CI wiki 下载的,它摆脱了 index.php 并做了一些安全事情)。这是我的整个 htaccess 文件:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Removes access to the system folder by users. Additionally this will allow you to create a System.php controller, 'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder. This snippet prevents user access to the application folder. Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file, such as an image or css document, if this isn't true it sends the request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]

#Pretty urls for pagination links
RewriteRule (.*) index.php?page=$1

</IfModule>

非缩进位是我从其他对我不起作用的 SO 问题中得到的解决方案。

这个 CI 分页问题的任何解决方案?


更新

好的,阅读一些文档,现在我有了这个工作:

http://mysite.com/home/index/2

将其变为的 htaccess 规则是什么?:

http://mysite.com/page/2
4

2 回答 2

1

您应该在此处进行此配置/application/config/routes.php(并让.htaccessjust for 隐藏 index.php,就像您已经在做的那样)。

$route['page/(:any)'] = 'home/index/$1';

或者更好,就像@zaherg 记得的那样(确保只有数字可以匹配):

$route['page/(:num)'] = 'home/index/$1';

这样,所有的请求都http://mysite.com/page/2将在内部被处理http://mysite.com/home/index/2,依此类推。

我建议您查看CodeIgniter 用户指南 - URI 路由CodeIgniter 用户指南 - 教程 - 简介

祝你好运。

于 2012-04-13T05:12:10.977 回答
0
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

来自CodeIgniter 文档

这将处理删除index.php,但之后会发生什么取决于 CodeIgniter 的查询字符串处理是如何设置的:它可以配置为使用查询字符串而不是路径。请参阅链接查看更多细节。

于 2012-04-13T01:21:40.553 回答