gpt4 book ai didi

apache - .htaccess 删除 URL 扩展,添加尾部斜线

转载 作者:行者123 更新时间:2023-12-04 01:39:01 25 4
gpt4 key购买 nike

我一直试图让它在我正在开发的网站的客户服务器上运行,但我就是无法让它运行。基本上我试图删除 .html 扩展名,并添加尾部斜杠(在 URL 栏中)。

所以如果有人进入:

-example.com/home/---------- 转到 ----- example.com/home/

-example.com/home ---------- 转到 ----- example.com/home/

-example.com/home.html ------ 转到 ----- example.com/home/

-example.com/home.html/----- 转到 ----- example.com/home/

-example.com/home/.html ----- 转到 ----- example.com/home/

-example.com/home/.html/----转到----- example.com/home/

到目前为止,这是我的 .htaccess,它可以完美地工作,并且可以完成我想要它做的所有事情,除了在末尾添加尾部斜杠。

这是代码:

#force www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*) http://www.%{HTTP_HOST}/1 [R=301,L]

# remove .html ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.html\sHTTP/1)
RewriteRule ^(.+)\.html /1 [R=301,L,QSA]

# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/ /1 [L,R=301]

# rewrite to FILENAME.html if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*) /1.html [L,QSA]

我在服务器上托管的所有文件都是 FILENAME.html 的形式,并且位于根目录中。

所以,如果有人能帮助我,我将不胜感激。

最佳答案

修改.htaccess文件,插入以下内容

解释: http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/

例子:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

更新页面上的链接

然后,所有超链接、css 链接、图像等都需要更新为具有绝对 URL (http://www.site.com/style.css) 或相对并以 ../ 开头。否则,您将遇到 CSS 无法加载、链接无效等问题。

关于apache - .htaccess 删除 URL 扩展,添加尾部斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9963638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com