apache服务器如何把网址中的index.html去掉

2025-09-11 22:18:10

1、建立.htaccess文件,不会创建的请点击下面的链接

2.htaccess文件怎么创建?

2、

在.htaccesss输入

RewriteEngine on

RewriteCond %{REQUEST_URI} ^(/index\.html)$ [NC]

RewriteRule ^(.*) / [R=301,L]

RewriteCond %{REQUEST_URI} !^(/index\.html)$ [NC]

RewriteCond %{REQUEST_URI} (/index\.html)$ [NC]

RewriteRule (.+)/index\.html /$1/ [R=301,L]

3、RewriteEngine on 意思为打开重写引擎

4、首先我们进行首页的index.html的消除工作。

RewriteCond %{REQUEST_URI} ^(/index\.html)$ [NC]

RewriteRule ^(.*) / [R=301,L]

RewriteCond是写规则生效条件的语句。

%{REQUEST_URI}表示当前的目录,例如当前的网址是http://www.baidu.com/index.html,那么%{REQUEST_URI}表示的就是/index.html这一部分。

^(/index\.html)$ [NC]表示的是在%{REQUEST_URI}中查找以开头/index\.html结尾的不区分大小写的部分,如果符合规则则执行RewriteRule ^(.*) / [R=301,L]。

RewriteRule ^(.*) / [R=301,L],此处进行的是URL的重写,^(.*) 表示的是当前的目录也就是/index.html这一部分,将其替换成“/”,也就是根目录的意思。那么当我们在输入http://www.baidu.com/index.html就会自动的把“/index.html”替换成“/”。

此处用到了正则表达式的支持,不懂正则的可以点击下面的链接查看。

7易语言-正则表达式入门

5、下面我们来解决栏目页的index.html

RewriteCond %{REQUEST_URI} !^(/index\.html)$ [NC]

RewriteCond %{REQUEST_URI} (/index\.html)$ [NC]

RewriteRule (.+)/index\.html /$1/ [R=301,L]

第一句的意思是判断当前的目录是否完全等于“/index\.html”(也就是网站首页),如果不是则继续执行。(上面已经解决了首页的index.html所以此处过滤掉)

第二句的意思是判断目录中是否存在“/index\.html”的字符,如果存在则执行。例如www.baidu.com/baike/2017/index.html就是符合规则的那么就会继续执行。

RewriteRule (.+)/index\.html /$1/ [R=301,L]的格式为:

RewriteRule 要替换的网址 替换成的网址 [R=301,L]

查找(.+)/index\.html的意思是“任何字符出现一次或多次”/inde.html的网址,也就是匹配“/baike/2017/index.html”这一部分。

$1指的是(.+),/$1/的意思就是将/baike/2017/index.html替换为/baike/2017/。如此一来栏目页的index.html就被301到目录下了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢