gpt4 book ai didi

php - 如何从网站 url 中隐藏 .html 扩展名

转载 作者:可可西里 更新时间:2023-11-01 00:47:55 24 4
gpt4 key购买 nike

我知道以前有人问过这个问题,但有没有人知道隐藏 .html 扩展名的好方法。我已经尝试了很多代码和来自 https://stackoverflow.com/ 的许多答案但我没有看到结果。那是我再问你一次

我有一个静态网站,我想删除扩展程序以清理我的网址。我正在处理静态 html 文件。

在删除扩展之前,url 将显示为 website.com/about.html

删除扩展后,它看起来像 website.com/about。希望这很清楚。

我有一个 .htaccess 文件,我尝试了很多代码,但它不起作用。下面是一些代码

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]



RewriteCond %{THE_REQUEST} \ /(.+/)?index(\.html)?(\?.*)?\ [NC]
RewriteRule ^(.+/)?index(\.html)?$ /%1 [R=301,L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]

RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]



RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://%{HTTP_HOST}/ [R=301,L]



RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [NC,L]



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


RewriteBase /
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.html [nc]


RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]

但是我没有看到任何结果...:(

最佳答案

你的规则被颠倒了(否则第一个规则会起作用):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.html [L]

您的原始规则是 RewriteRule ^(.*)\.html$ $1 [L] 转换为“如果请求的资源名称以 .html 结尾,则发出重定向到浏览器,告诉它询问我们是否有任何没有 HTML 的同名内容”。这会导致 404(因为 Apache 没有任何东西可用于 .html'less 资源)。

通过将 .html 切换到目标 RewriteRule ^(.*)$ $1.html [L] 我们将规则更改为“如果请求的资源名称不是磁盘上的文件或目录然后尝试重新路由请求(在内部,不要告诉浏览器)就好像它以 .html 结尾一样。

关于php - 如何从网站 url 中隐藏 .html 扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853788/

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