如何使用Htaccess删除多个文件扩展名并重定向文件扩展名URL

mcheah

我刚刚开始为一家杂乱无章的律师事务所做一些网站工作。他们的文件带有多个文件扩展名(html,php,txt)和一些奇怪的目录操作(例如,一个链接将转到example.com/head-injuries/,该文件会提供head-injuries / index.html,而下一个仅链接)前往example.com/car-crashes.html)

我想知道如何将.htaccess文件编辑为

  1. 从网址中删除所有文件扩展名,然后
  2. 将每个带有文件扩展名的URL重定向到一个不带文件扩展名的URL。(这样就不会弄乱内部链接,也没有搜索引擎索引重复内容的危险)

我读过其他一些人们有相同问题但未得到回答的主题-似乎如果有2个文件具有相同的名称但扩展名不同,则我需要区分某种提供正确内容的方法。这不应该是网站的问题,但是如果需要优先考虑,我会优先将php优先于html,而不是txt。

任何帮助,将不胜感激,谢谢!

林俊

您是否尝试过让mod_negotiation为您解决这个问题?

就像是:

Options +Multiviews

RewriteCond %{THE_REQUEST} \ /+([^\?\ ]+)\.[a-z]+(\?|\ |$) [NC]
RewriteRule ^ /%1 [L,R]

请注意,如果您拥有以下文件,则会遇到问题:

/page.html

/page.php

因为两者都会重定向到/page和mod_negotiation都不知道您实际上是在尝试请求哪一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章