0

我想重写codeigniter url rewrite的代码。

我使用了以下代码。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /test/index.php?/$1 [L]
RewriteRue ^list/shows/cid-([0-9]+).html /list/shows?cid=$1

注意:“test”是我的网站目录。

它适用于 index.php 删除。但它不适用于 url 重写

我想制作http://example.com/test/list/shows?cid=1

变得

http://example.com/test/list/shows/cid-1.html

提前致谢。

4

2 回答 2

1

为什么不使用框架内置的路由功能呢?

您可以轻松地将这样的内容添加到application/config/routes.php

$route['list/shows/cid-([0-9]+)'] = '/list/shows/$1';

我省略了该.html部分,因为如果您将其设置为 URL 后缀,则不会考虑该部分)

编辑:根据OP的第一条评论更新(在答案中移动了我的评论)

现在,所有请求都被这个指令捕获:

RewriteRule ^(.*)$ /test/index.php?/$1 [L]

按照 diEcho 的建议,尝试在指令之后立即移动您的自定义规则RewriteEngine On,更正您的RewriteRule拼写错误并添加到您的规则中。[L]

于 2012-09-18T07:52:21.030 回答
0

尝试

RewriteEngine on
RewriteBase /test
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /test/index.php/$1 [NC,L]
RewriteRule ^list/shows/cid-([0-9]+).html /list/shows?cid=$1 [NC]
于 2012-09-18T06:49:44.263 回答