【发布时间】:2020-07-07 15:11:14
【问题描述】:
我目前已将我的 htaccess 设置为通过以下代码去除我的页面扩展。
RewriteRule ^(.+).php$ /$1 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)/?$ /$1.php [END]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
但是,如果用户现在点击指向索引页面的链接(即:example.com/index),它会在我想强制删除的 url 中显示 /index。我已经看到了一百万个关于如何使用 htaccess 删除 index.php 或 index.html 的示例,但似乎无法找到将它们合并到我的文件中的方法,因为我的 url 没有文件扩展名。
附:我在这方面的经验非常缺乏,感谢详尽评论的示例。
【问题讨论】:
-
“跟随指向索引页面的链接” - 大概是您自己的内部链接不包含
index,这是为了修复第 3 方入站链接? -
不,我使用生成器,不想浏览和更新所有内部链接。
-
在这种情况下,您不应该在
.htaccess中实施重定向来删除index,因为它可能会减慢您的用户速度,使您的服务器的请求加倍并且不利于您的搜索引擎优化。 唯一的“实用”解决方案是更新您的内部链接。 -
我的网站托管在全球 165 台不同的服务器上,速度和负载并不是真正的问题。更不用说每次我推送更新时我都不想为 100 多个网站这样做,而 htaccess 是一次性解决方案。但我感谢您的反馈,并同意在大多数情况下这是低效的。
标签: .htaccess