0

我正在使用 codeigniter 我想从 url 重写 index.php。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]

当我在.htaccess index.php不删除时使用此代码时。

index.php但是当我从网址中手动删除时,它可以工作。

4

4 回答 4

3

通过删除config/config.php中的'index.php'并替换为来完成此操作。''

那应该是文件中创建的第二个键。这将改变您网站上的所有base_url()功能site_url()

于 2012-08-20T10:49:01.080 回答
0

更改 $config['index_page'] = 'index.php'; 在 config.php 到 $config['index_page'] = '';

于 2012-08-20T10:48:42.487 回答
0

当我在我的 .htaccess index.php 中使用此代码时,不会删除。

这些规则仅将请求路由到 index.php,它不会对“删除”它做任何事情。这取决于您在自己的内容中生成的链接。如果由于某种原因,您需要处理外部链接并希望将客户端重定向到缺少 index.php 的新 URL(如 Google 索引机器人),那么您可以这样做:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index.php/([^\ ]+) 
RewriteRule ^index.php/ /%1 [L,R=301]
于 2012-08-20T10:47:59.560 回答
0

AllowOverride All

确保目录部分的 apache 配置中存在允许覆盖指令。如果.htaccess文件位于指定目录中,则可以读取该文件。

例如。

<Directory /var/www>
AllowOverride All
</Directory>

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

于 2013-04-15T13:32:17.273 回答