如何使 viewforum.php?foo=bar 请求提供文件而不是 PHP 代码?
How to make viewforum.php?foo=bar request serve a file instead of a PHP code?
我正在将 phpBB 论坛存档到平面 HTML 文件中,不再使用任何 PHP 代码。
我使用了 wget
(参见 How to: Archive a phpBB forum using Wget and preserve styling),现在我有这些 文件 :
如何使 Apache example.com/forum/viewforum.php?f=2&start=25
作为文件,而不是作为带有查询字符串的 viewforum.php
请求? 后者明显不行,报404。
我已经尝试过这个 htaccess 但没有成功:
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
注意:这是我存档论坛的方式:
wget -m -p -np -R "*sid=*,ucp.php*,memberlist.php*,*mode=viewprofile*,*view=print*,viewonline.php*,search.php*,posting.php*" https://forums.example.com
确实是个有趣的问题!迫使我挖掘许多 Apache 文档。最后解决方案很简单,即转义 ?
以便 Apache 不会将 ?
和之后的部分视为查询字符串。
您可以在站点根目录 .htaccess 中使用此重写规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/forum/viewforum\.php$ [NC]
RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI}\%3F%{QUERY_STRING} [L,NC]
PS: \%3F
被转义 ?
所以让 Apache 加载 /forum/viewforum.php?f=2&start=25
作为一个文件。
我正在将 phpBB 论坛存档到平面 HTML 文件中,不再使用任何 PHP 代码。
我使用了 wget
(参见 How to: Archive a phpBB forum using Wget and preserve styling),现在我有这些 文件 :
如何使 Apache example.com/forum/viewforum.php?f=2&start=25
作为文件,而不是作为带有查询字符串的 viewforum.php
请求? 后者明显不行,报404。
我已经尝试过这个 htaccess 但没有成功:
RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
注意:这是我存档论坛的方式:
wget -m -p -np -R "*sid=*,ucp.php*,memberlist.php*,*mode=viewprofile*,*view=print*,viewonline.php*,search.php*,posting.php*" https://forums.example.com
确实是个有趣的问题!迫使我挖掘许多 Apache 文档。最后解决方案很简单,即转义 ?
以便 Apache 不会将 ?
和之后的部分视为查询字符串。
您可以在站点根目录 .htaccess 中使用此重写规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/forum/viewforum\.php$ [NC]
RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI}\%3F%{QUERY_STRING} [L,NC]
PS: \%3F
被转义 ?
所以让 Apache 加载 /forum/viewforum.php?f=2&start=25
作为一个文件。