【问题标题】:How to remove multiple file extensions with Htaccess and redirect file extension URLs如何使用 Htaccess 删除多个文件扩展名并重定向文件扩展名 URL
【发布时间】:2015-01-25 05:47:02
【问题描述】:

我刚开始为一家网站有点乱的律师事务所做一些网站工作。他们的文件具有多个文件扩展名(html、php、txt)和一些奇怪的目录做法(例如,一个链接将转到 example.com/head-injuries/ 服务于 head-injuries/index.html,下一个只是链接到 example.com/car-crashes.html)

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

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

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

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

【问题讨论】:

    标签: php html .htaccess redirect file-extension


    【解决方案1】:

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

    类似:

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

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

    /page.html
    

    /page.php
    

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

    【讨论】:

    • 感谢您的回复!今晚流量低时我会检查一下。
    • 看起来效果很好 - 感谢您花时间帮助我。
    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    相关资源
    最近更新 更多