Redirect 路径更改前重定向到目录结构中的同一命名页

Redirect 路径更改前重定向到目录结构中的同一命名页,redirect,path,http-status-code-404,Redirect,Path,Http Status Code 404,好吧,假设我的网站上有很多html页面。这种情况是,我有时会改变目录结构,所以当任何人试图访问一个确定的URL时,这样的URL可能不会退出。文件名不会更改,但路径也会更改 就我现在所知,服务器将用户带到一个可以定制的“404”页面。可以用这种方式自定义页面吗?: 用户尝试oneweb.com/oldpath/page.html;这是不存在的 启动404定制页面 404页运行脚本这可能吗 脚本被赋予了存储该名称的文件的名称 该脚本搜索整个目录结构,以查找page.html如何访问该结构 找到文件并

好吧,假设我的网站上有很多html页面。这种情况是,我有时会改变目录结构,所以当任何人试图访问一个确定的URL时,这样的URL可能不会退出。文件名不会更改,但路径也会更改

就我现在所知,服务器将用户带到一个可以定制的“404”页面。可以用这种方式自定义页面吗?:

  • 用户尝试oneweb.com/oldpath/page.html;这是不存在的
  • 启动404定制页面
  • 404页运行脚本这可能吗
  • 脚本被赋予了存储该名称的文件的名称
  • 该脚本搜索整个目录结构,以查找page.html如何访问该结构
  • 找到文件并存储新的URL:oneweb.com/newpath/page.html
  • 此时会出现一个链接,显示新的URL

  • 也许这个过程比较常见,我可以找到一些相关的代码或教程

    您正在使用Apache吗?Linux

    添加一个404处理程序

    ErrorDocument 404 /404.php
    
    然后使用404.php解析url。这个简单的示例只获取URI中最后一个/之后的所有内容,因此将page.html放在$url中:

    $url = end(explode('/', $_SERVER['REQUEST_URI']));
    
    然后使用中的注释示例函数之一搜索目录并查找文件

    然后执行头301重定向

    header ('HTTP/1.1 301 Moved Permanently');
    header ('Location: http://example.com/' . $file_path);
    

    哈哈,好点子。。。我甚至不想问他是否在使用.Net和IIS以外的东西:)太好了。。。你只是让我碍手碍脚。我不知道php.net;我觉得很好。我使用Apache,但已经安装在一个免费的托管服务器上。