CI框架 .htaccess 隐藏url中index.php的解决
CodeIgniter(以下简称"CI")是一款国外优秀的PHP轻量级MVC框架,它支持PHP4和PHP5,是开发中小型可拓展性需求高的Web应用程序的利器。目前你所见到的这个博客程序,正是采用CI进行的编写。
秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用。也就是说,在默认情况下,所有CI开发项目的URL都形如以下这种形式:
http://localhost/index.php/blog/logs/this_is_a_test_entry
很显然,默认情况下,index.php在URL地址段中的存在一定程度上影响了URL的简洁和SEO的进行。我们可以通过下面本文介绍的方法来去掉这个讨厌的Index.php。
你或许已经注意到在CodeIgniter用户手册中,已经存在关于此问题的解决方法。但官方提供的这个.htaccess配置,并不是所有时候都能解决问题。本文现在给出一个更完善的解决方案。
注意:在继续之前,请确认你的主机支持.htaccess配置。其中,如果Apache作为Web服务器,需要开启mod_rewrite模块的支持;如果将IIS作为Web服务器,则需要额外安装ISAPI_Rewrite拓展。
具体方法如下:
1. 将以下配置信息复制并保存为.htaccess文件。
以下为.htaccess文件信息 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | RewriteEngineOn RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule^(.*)$ /index.php?/$1 [L] #如果没有安装mod_rewrite模块,所有的404页面都将被 #发送到index.php,此时,程序会像没有设置隐藏时一样运行 ErrorDocument404 /index.php |
2. 将以上.htaccess文件上传到CI所在项目的根目录(即与index.php同级目录下)
3. 修改application/config.php中的如下参数:
1 | $config['index_page'] = "index.php"; |
至
1 | $config['index_page'] = ""; //设置为空 |
以上三步,缺一不可。如果一切配置正常,你会发现,再次运行程序的时候,程序已经自动隐藏index.php这个URL段了!
Trackback(UTF-8):http://www.cnSaturn.com/trackback/40
CodeIgniter中开启PATH_INFO时mod_rewrite隐藏index.php的问题。
在CodeIgniter中,当我将URI寻址方式从AUTO更改为PATH_INFO时,即:
$config['uri_protocol'] = 'PATH_INFO';
注:PATH_INFO的开启,是因为我希望通过$_GET来取值,而不是系统默认的POST方式。
在此情况下如何仍然使用以上.htaccess方案,结果将是:index.php顺利隐藏,但主控制器并不能正确的获取值。
解决方案如下,就一步:
去掉以下重写规则中index.php后面的问号即可。
RewriteRule^(.*)$ /index.php?/$1[L]
修改后的规则如下:
RewriteRule^(.*)$ /index.php/$1 [L]
其他地方不变。
=============================================================================================================
【其他】跟我学网站开发框架CodeIgniter之url篇
如何删除index.php文件
估计很多人学习CodeIgniter第一步想做的就是如何去掉index.php,这个官方手册就有相关教程,修改.htaccess 文件(前提是你的服务器是apache):
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
当然了,有很多人按照要求修改了,但是却出现了错误,所有的访问都404了,而且,这个404是apache的404页面,而不是CodeIgniter的404错误页面。
出现这种问题,是对apache的rewrite规则不理解:
所以呢,如果CodeIgniter如果不是安装在网站的根目录,必然会出现错误。如何解决呢,在CodeIgniter手册中也给出了相应的解决方案:
把上面最后一句改为:RewriteRule ^(.*)$ index.php/$1 [L]
只需要去掉index.php前面的斜杠就行。
如何添加url后缀
通过上面的步骤,我们已经隐藏了index.php了,现在我们制作的网站更加的rest了,一般人已经无法一眼就看出你的网站是用CodeIgniter开发的,还是ROR开发的。
但是,如何在url后面增加后缀呢,这样,我们甚至可以隐藏或者伪造网站的开发语言,通过修改 config/config.php 文件,你可以为 CodeIgniter 生成的 URL 添加一个指定的文件后缀,比如你可以添加.html,甚至你可以添加.asp,.jsp。
这样我们就可以将 http://www.hualai.net.cn/index.php/news/view/about 变成 http://www.hualai.net.cn/index.php/news/view/about.html。
如何使用查询字符串
一般情况下我们不需要使用查询字符串,但是,总有一些特殊情况,是我们用CodeIgniter的rest模式无法完成的,这样我们就需要在 URL 中使用查询字符串:
index.php?c=products&m=view&id=345
CodeIgniter 默认此功能是关闭的,如果想开启的话,打开配置文件 application/config/config.php 您可以看到如下内容:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c'; //控制器名
$config['function_trigger'] = 'm'; //方法名
$config['directory_trigger']='d'; //控制器所在子目录名称
如果你将 enable_query_strings 更改为 TRUE ,那么这个功能就被激活了。此时,你就可以通过关键字来调用需要的控制器和方法了:
index.php?c=controller&m=method
当我们在使用CodeIgniter制作分页的时候,这个就可以派上用场了。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Win11 시스템에서 중국어 언어 팩을 설치할 수 없는 문제 해결 Windows 11 시스템이 출시되면서 많은 사용자들이 새로운 기능과 인터페이스를 경험하기 위해 운영 체제를 업그레이드하기 시작했습니다. 그러나 일부 사용자는 업그레이드 후 중국어 언어 팩을 설치할 수 없어 경험에 문제가 있다는 사실을 발견했습니다. 이 기사에서는 Win11 시스템이 중국어 언어 팩을 설치할 수 없는 이유에 대해 논의하고 사용자가 이 문제를 해결하는 데 도움이 되는 몇 가지 솔루션을 제공합니다. 원인 분석 먼저 Win11 시스템의 무능력을 분석해 보겠습니다.

스마트폰 기술이 계속해서 발전하면서 휴대폰은 우리 일상생활에서 점점 더 중요한 역할을 하고 있습니다. Black Shark 휴대폰은 게이밍 성능에 중점을 둔 플래그십 휴대폰으로 플레이어들에게 큰 호응을 얻고 있습니다. 그러나 때로는 Black Shark 휴대폰을 켤 수 없는 상황에 직면하기도 합니다. 이때 이 문제를 해결하기 위해 몇 가지 조치를 취해야 합니다. 다음으로 Black Shark 휴대폰이 켜지지 않는 문제를 해결하는 방법을 알려주는 5가지 팁을 공유하겠습니다. 1단계: 배터리 전원을 확인하세요. 먼저 Black Shark 휴대폰의 전원이 충분한지 확인하세요. 휴대폰 배터리가 방전되었기 때문일 수 있습니다.

컴퓨터가 드라이버를 로드할 수 없으면 장치가 제대로 작동하지 않거나 컴퓨터와 제대로 상호 작용하지 않을 수 있다는 것은 누구나 알고 있습니다. 그렇다면 이 장치에 드라이버를 로드할 수 없다는 메시지 상자가 컴퓨터에 나타날 때 문제를 어떻게 해결합니까? 아래 편집기에서는 문제를 쉽게 해결하는 두 가지 방법을 알려드립니다. 이 장치에 드라이버를 로드할 수 없습니다. 해결 방법 1. 시작 메뉴에서 "커널 격리"를 검색합니다. 2. 메모리 무결성을 끄십시오. 위의 메시지는 "메모리 무결성이 꺼졌습니다. 장치가 취약할 수 있습니다."를 클릭하고 무시하면 사용에 영향을 미치지 않습니다. 3. 문제는 기기를 다시 시작한 후 해결될 수 있습니다.

소셜 미디어의 지속적인 발전으로 Xiaohongshu는 점점 더 많은 젊은이들이 자신의 삶을 공유하고 아름다운 것을 발견할 수 있는 플랫폼이 되었습니다. 많은 사용자들이 이미지 게시 시 자동 저장 문제로 고민하고 있습니다. 그렇다면 이 문제를 해결하는 방법은 무엇입니까? 1. Xiaohongshu에 게시할 때 사진이 자동으로 저장되는 문제를 해결하는 방법은 무엇입니까? 1. 캐시 지우기 먼저 Xiaohongshu의 캐시 데이터를 지워볼 수 있습니다. 단계는 다음과 같습니다. (1) Xiaohongshu를 열고 오른쪽 하단에 있는 "내" 버튼을 클릭합니다. (2) 개인 센터 페이지에서 "설정"을 찾아 클릭합니다. 캐시 지우기' 옵션을 선택하고 확인을 클릭하세요. 캐시를 삭제한 후 샤오홍슈에 다시 진입하여 사진을 올려 자동 저장 문제가 해결되었는지 확인해 보세요. 2. Xiaohongshu 버전을 업데이트하여 Xiaohongshu를 확인하세요.

WeChat 친구를 차단하거나 삭제하지 않고 숨기는 방법은 무엇입니까? 많은 사용자가 친구를 숨기고 싶지만 어떻게 해야 할지 모릅니다. 이 웹사이트에서 WeChat 친구를 차단하거나 삭제하지 않고 숨기는 방법을 주의 깊게 소개하세요. 차단하거나 삭제하지 않고 WeChat 친구를 숨기는 방법 방법 1: 1. 먼저 WeChat 소프트웨어를 열고 WeChat 페이지에서 주소록을 찾은 다음 "내"를 클릭합니다. 2. 그런 다음 설정 페이지로 들어갑니다. 3. "개인정보 보호" 옵션을 찾아 클릭하세요. 4. 그런 다음 "그가 보지 못하게 하세요"를 클릭하세요. 5. 그녀가 보지 못하게 페이지로 이동하여 "+"를 클릭하여 숨기고 싶은 친구를 확인하세요.

Douyin 단편 영상 앱 소프트웨어에는 다양한 단편 영상 작품이 제공되며 원하는 대로 시청할 수 있으며 모두 무료로 제공됩니다. 다양한 유형의 라이브 영상 채널이 공개되어 있으며 모든 영상 콘텐츠는 원본입니다. . 모두에게 가장 만족스러운 시청 방법을 제공하세요. 계정을 입력하여 온라인으로 로그인하면 모두가 매일 시청하는 동영상을 바탕으로 정확하게 추천되는 다양하고 흥미로운 짧은 동영상이 푸시됩니다. 또한 생방송 방에 들어가 앵커와 상호 작용하고 채팅할 수도 있습니다. 더 행복해요. 개인이 업로드한 작품도 숨길 수 있으며, 한 번의 클릭으로 설정이 매우 간단합니다. 위아래로 스와이프하면 수많은 네티즌들의 실시간 댓글도 볼 수 있습니다. 이제 편집자는 온라인 Douyin 짧은 비디오를 자세히 설명했습니다. 사용자는 개인 비디오 작품을 숨기는 방법을 요구합니다. 첫 번째 오픈 Douyin 짧은 비디오

놀라운 하드웨어 구성과 우수한 기능 외에도 Xiaomi Mi 14에는 Smart Island라는 매혹적인 장소도 숨겨져 있습니다. 여기에서 사용자는 개인화된 맞춤화와 무제한의 창의적인 휴대폰 경험을 즐길 수 있습니다. 하지만 모든 사람이 이 기능을 좋아하는 것은 아닙니다. 그렇다면 Xiaomi Mi 14는 Smart Island를 어떻게 숨길까요? 함께 알아봅시다. Xiaomi Mi 14에서 Smart Island를 숨기는 방법은 무엇입니까? 1. Xiaomi 14 휴대폰의 설정 애플리케이션을 엽니다. 2. 스크롤하여 "기능" 옵션을 찾은 다음 클릭하여 들어갑니다. 3. 기능 페이지에서 "스마트 아일랜드 숨기기" 옵션을 찾아서 켜세요. 4. 스마트 아일랜드 숨기기가 켜져 있는지 확인한 후 바탕화면으로 돌아가면 스마트 아일랜드가 숨겨져 있는 것을 확인할 수 있습니다.

제목: Oracle 오류 3114 분석: 원인 및 해결 방법 Oracle 데이터베이스를 사용할 때 다양한 오류 코드가 자주 발생하며, 그 중 오류 3114가 비교적 일반적인 오류입니다. 이 오류는 일반적으로 데이터베이스 링크 문제와 관련되어 있으며, 이로 인해 데이터베이스에 액세스할 때 예외가 발생할 수 있습니다. 이 문서에서는 Oracle 오류 3114를 해석하고 원인을 논의하며 오류를 해결하는 구체적인 방법과 관련 코드 예제를 제공합니다. 1. 오류 3114 정의 Oracle 오류 3114 통과
