【问题标题】:Creating Aliases/Redirects/Rewrite for Top-Level Redirects for Apache Servers为 Apache 服务器的顶级重定向创建别名/重定向/重写
【发布时间】:2016-01-23 02:46:38
【问题描述】:

我有一个personal and professional website,它有两个主要用途:

  • 该网站的第一个功能是提供有关我自己的信息 公众(例如关于我、联系信息、简历/简历等)
  • 第二个功能是作为一种“一站式”网络应用程序,所以我 可以从一个中心位置访问我的所有重要资源 (例如网络邮件、ISP 控制面板、管理员设置等)

我想创建从我的网站到这些关键位置的“顶级重定向”。我的首选方法是创建一系列简单的 PHP 脚本——使用所谓的“酷 URI”——然后将简单的 HTTP 重定向发送到这些资源的实际位置。

示例:

文件:mail.php

<?php
header('Location: http://www.example.com/webmail');
?>

期望的效果是能够为这些资源提供稳定的 URI:虽然实际的目的地本身很可能发生变化,但它们总是可以从 正如 Tim Berners-Lee 爵士在他的著名文章“Cool URIs Don’t Change”中所描述的那样,“酷 URI”——永远不会改变的 URI。

但是,为了管理/维护我的根目录中的(已经大量的)文件,如果有人可以帮助我设置相关的指令/规则,我将非常感激我的 Apache 服务器,这样我就可以在子目录中整齐地包含所有这些 PHP 重定向脚本,但仍然能够在顶层引用它们。

/ public_html
    |
    | –  / redirects
             |
             | – admin.php 
             | – mail.php
             | – [etc.]

简而言之,我想知道的是: 如何配置 Apache 以将 /redirects/mail.php 的 PHP 文件视为 /mail.php

技术限制: 我的网站在典型的 LAMP 架构上运行。但是,由于我目前使用的是共享主机,我无法修改 httpd.conf 文件 - 我只能将 Apache 指令与 .htaccess 文件一起应用。

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect url-rewriting


    【解决方案1】:

    如果您实际上只需要在站点的根目录中接收对 php 文件的任何请求,然后从 /redirects/ 子目录下提取它,那么不妨试试:

    重写规则 ^/(.+\.php)$ /redirects/$1 [NC]

    【讨论】:

      【解决方案2】:

      安装并启用模式重写。

      RewriteCond %{REQUEST_URI} /mail.php
      RewriteRule (.*) http://youserver/redirects/mail.php
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-13
        • 1970-01-01
        • 2014-06-03
        • 1970-01-01
        • 2011-08-08
        • 2014-11-27
        • 2014-11-03
        相关资源
        最近更新 更多