我已经解决了通过 ErrorDocument 将所有 uri 转换为一页的解决方案。
这背后的原因是将文件和文件夹(漂亮的网址)发送到一页。但是,我需要将 URI 字符串发送到 index.php?uri=string 。这是否可以通过 ErrorDocument 实现,或者我该怎么做?
所以我需要重写
到
这是否可能,如果,如何?
我已经解决了通过 ErrorDocument 将所有 uri 转换为一页的解决方案。
这背后的原因是将文件和文件夹(漂亮的网址)发送到一页。但是,我需要将 URI 字符串发送到 index.php?uri=string 。这是否可以通过 ErrorDocument 实现,或者我该怎么做?
所以我需要重写
到
这是否可能,如果,如何?
如果您的服务器支持服务器端包含 (SSI),那么您将以下内容404.shtml
用作您的 ErrorDocument:
<html>
<header>
<meta http-equiv="Refresh" content="0; url=/index.php?uri=<!--#echo var="REQUEST_URI" -->">
</header>
</html>
编辑:有一种更简单的方法:创建一个 PHP 文件作为您的 ErrorDocument,您可以在其中做任何事情!:)
EDIT2:您可以使用访问原始 URI$_SERVER['REQUEST_URI']
EDIT3:哎呀,如果您只是重定向到index.php
同一主机上,您可以将该index.php
文件设置为您的 ErrorDocument 并通过检查是否从 404 错误重定向请求$_SERVER['REDIRECT_STATUS'] == '404'