我正在使用 codeigniter 我想从 url 重写 index.php。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
当我在.htaccess
index.php
不删除时使用此代码时。
index.php
但是当我从网址中手动删除时,它可以工作。
我正在使用 codeigniter 我想从 url 重写 index.php。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
当我在.htaccess
index.php
不删除时使用此代码时。
index.php
但是当我从网址中手动删除时,它可以工作。
通过删除config/config.php中的'index.php'
并替换为来完成此操作。''
那应该是文件中创建的第二个键。这将改变您网站上的所有base_url()
功能site_url()
。
更改 $config['index_page'] = 'index.php'; 在 config.php 到 $config['index_page'] = '';
当我在我的 .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]
AllowOverride All
确保目录部分的 apache 配置中存在允许覆盖指令。如果.htaccess
文件位于指定目录中,则可以读取该文件。
例如。
<Directory /var/www>
AllowOverride All
</Directory>
http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride