为Apache服务器创建顶级重定向的别名/重定向/重写

时间:2016-01-22 18:01:22

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

我有一个personal and professional website,主要有两个目的:

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

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

示例:

档案:mail.php

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

如果您实际需要在网站的根目录中接受任何php文件请求并从/ redirects /子目录下拉取,那么可以尝试:

RewriteRule ^ /(。+ \。php)$ / redirects / $ 1 [NC]

答案 1 :(得分:1)

安装了模式重写并启用。

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