duanou1904 2014-11-26 19:00
浏览 93
已采纳

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

I just started doing some website work for a law firm whose website is kind of messy. They have files with multiple file extensions (html, php, txt) and some weird directory practices (e.g. one link will go to example.com/head-injuries/ which serves head-injuries/index.html, and the next one just links to example.com/car-crashes.html)

I was wondering how I could edit the .htaccess file to

  1. Remove all file extensions from the URLs and
  2. Re-direct each URL with a file extension to one without a file extension. (so that internal linking will not be messed up and there's no danger of search engines indexing duplicate content)

I read some other threads where people had the same questions but weren't answered - and it looks like I'll need to distinguish some way of serving the correct content if there are 2 files with the same name but different extensions. This shouldn't be a problem with the website but if there needs to be a priority, I would prioritize php over html over txt.

Any help would be appreciated, thanks!

  • 写回答

1条回答 默认 最新

  • dounuo1881 2014-11-26 19:11
    关注

    Have you tried just letting mod_negotiation take care of this for you?

    Something like:

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

    Note that you'll run into issues if you have files like:

    /page.html
    

    and

    /page.php
    

    Because both will redirect to /page and mod_negotiation won't know which one you're actually trying to request.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失