好吧,所以这就是我想要实现的目标。
如果服务器返回404,我希望能够将URL数据发送到php文件。
例如:
example.com/stackoverflow
会显示动态404页面
(404.php?id=stackoverflow)
但在我的情况下,我没有将它用于404,我想在domain.com/
之后发送数据这样我就可以从我的数据库中取出并相应地显示内容。
我知道这可以通过.htaccess中的小重写完成,正则表达式对我来说很困惑。
我不想要重定向。
http://example.com/datahere
应显示
的数据404.php?id=datahere
答案 0 :(得分:1)
您可以使用ErrorDocument
指令将404 uris重定向到/404.php
,如下所示:
ErrorDocument 404 /404.php?id=%{REQUEST_URI}
这会将/datahere
重写为/404.php?id=datahere
(/datahere
会显示/404.php?id
)的内容。
请注意,上述指令对下面的apache版本不起作用,因为mod-rewrite变量%{REQUEST_URI}
被视为纯文本而不是较低版本的变量。
在apache 2.2上,您可以使用mod-rewrite将不存在的请求重写为404。使用以下内容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /404.php?id=$1 [L]