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 孟德尔随机化结果不一致
  • ¥15 深度学习残差模块模型
  • ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
  • ¥15 差动电流二次谐波的含量Matlab计算
  • ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
  • ¥15 C#如何调用串口数据
  • ¥15 MATLAB与单片机串口通信
  • ¥15 L76k模块的GPS的使用
  • ¥15 请帮我看一看数电项目如何设计
  • ¥23 (标签-bug|关键词-密码错误加密)