繁体   English   中英

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

[英]How to remove multiple file extensions with Htaccess and redirect file extension URLs

我刚刚开始为一家杂乱无章的律师事务所做一些网站工作。 他们的文件带有多个文件扩展名(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不会知道您实际上要请求的是哪一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM