我们有一个基于 Perl 的网站,它在 Apache 上使用 mod_perl 运行。其核心是大量单独的 Perl 脚本 - 每个页面一个。例如:
www.example.com/index.pl
www.example.com/account.pl
www.example.com/login.pl
我们正在慢慢地重构它,并转向基于控制的模型,在这个模型中我们只有一个入口点 - 调度程序。当前的方法是在重构时用对控制器的调用替换每个页面脚本中的代码。这给我们留下了很多做同样事情的存根脚本。有没有办法告诉 Apache 首先寻找匹配的文件,如果失败,则调用控制器代码并向其传递请求 URI?
答案1
抬头mod_rewrite. 将类似下面的内容放入.htaccess相应目录中的文件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /controller.pl?request=$1 [L]
第二行是条件检查!-F进入下一行如果文件不存在。您需要调整第三行以走正确的路径并传入适当的参数。