【问题标题】:HTACCESS Rewrite & Redirect QuestionsHTACCESS 重写和重定向问题
【发布时间】:2017-04-22 09:23:52
【问题描述】:

1) 如果文件扩展名是 PHP 或 (S)HTM(L),我想创建一个重写规则,删除 URL 末尾的文件。例如:

This: http://www.example.com/index.php
Becomes: http://www.example.com/

This: http://www.example.com/index.php?action=login
Becomes: http://www.example.com/?action=login

2) 我想用我的 .htaccess 设置一些 URL 重定向,这样如果有人浏览某个路径,就会自动重定向到 /index.php。例如:

This: http://www.example.com/classes/(index.php)
Redirected To: http://www.example.com/(index.php)

This: http://www.example.com/classes/class.php
Redirected To: http://www.example.com/(index.php)

This: http://www.example.com/classes/style.css
Redirected To: http://www.example.com/(index.php)

有什么线索吗? 非常感谢!

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    对于 1) 你可能会颠倒你的问题,mod-rewrite 的工作是读取脏 url 并找到真正的文件,所以你想要的是使用错误的 url (没有 index.php) 和 mod-rewrite找到 index.php。 Mod-rewrite 不会修改您的网址,这是您的应用程序代码工作(PHP?)

    假设您的应用程序正在编写这个 url:

    http://www.example.com/
    

    apache 将使用的事实

    http://www.example.com/index.php
    

    http://www.example.com/index.htm
    

    http://www.example.com/index.html
    

    响应不是由 mod-rewrite 处理,而是由 Apache 配置指令处理

    DirectoryIndex index.php,index.htm,index.phtml
    

    对于http://www.example.com/?action=login,它也应该可以工作。

    对于 2):还不清楚。您是否总是希望重定向尝试访问您的类目录的人?然后是两件事:

    1. 如果这个目录不应该从 web 访问,把它放在 web 目录之外,没有人会看到它,如果它只包含 php 类 PHp 可以包含不在 web 目录中的文件。如果它包含 css 和 js 文件那么这是一个错误,在根目录中重定向它们肯定不会给它们一个 js 或 css
    2. 你不需要 mod-rewrite 来进行简单的重定向,mod_alis,这是一个你肯定有的模块(99% 的机会)提供 RedirectRedirectMatch 关键字,以便你可以编写:

      RedirectMatch 永久 /classes/.* http://www.example.com/

    一如既往地检查this page:,了解无需进入 mod-rewrite 的大脑卷积即可轻松完成的规则​​。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多