作为 CGI 脚本运行时如何处理 Dancer 路线?

发布于 2024-11-06 05:20:28 字数 695 浏览 0 评论 0原文

我正在按照 Dancer::Deployment 中编写的说明运行 Perl Dancer 框架,以作为 cgi 脚本运行。这允许我显示“/”路由的默认页面,但除此之外我似乎无法做任何事情。例如,假设我想请求类似 http://localhost/myroute 的内容,并由 '/ 处理myroute' 路由处理程序。我该如何完成这个任务呢?

我正在使用 apache 的 mod_rewrite 来引导我的请求。目前,如果我尝试上述操作,我最终会收到一条消息,例如“在此服务器上找不到请求的 URL /cgi-bin/dancer.cgimyroute”。以下是我的 .htaccess 的内容。

<IfModule mod_rewrite.c>    
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /cgi-bin/dancer.cgi$1 [QSA,L]
</IfModule>

我在 Windows XP 上运行 Apache 2.2 和 Dancer 1.3030。我明白为什么我会收到这样的错误消息。我正在寻找的是一些用于处理“/myroute”路由的示例代码,也许还有一些关于我应该对 .htaccess 文件进行的任何修改的建议。

I am running the Perl Dancer framework following the instructions written in Dancer::Deployment for running as a cgi-script. This allows me to display a default page for the '/' route, but I can't seem to do anything beyond that. For example, let's say that I want to request something like http://localhost/myroute and have that handled by the '/myroute' route handler. How would I pull this off?

I am using apache's mod_rewrite to direct my requests. Currently, if I try the above, I end up with a message like "The requested URL /cgi-bin/dancer.cgimyroute was not found on this server." Below is the contents of my .htaccess.

<IfModule mod_rewrite.c>    
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /cgi-bin/dancer.cgi$1 [QSA,L]
</IfModule>

I am running Apache 2.2 on Windows XP with Dancer 1.3030. I understand why I am getting the error message that I am getting. What I am looking for is some sample code for handling the "/myroute" route and perhaps some suggestions regarding any modifications that I should make to my .htaccess file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦萦几度 2024-11-13 05:20:28

配置需要在 dancer.cgi 之后有一个 /

<IfModule mod_rewrite.c>    
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /cgi-bin/dancer.cgi/$1 [QSA,L]
</IfModule>

感谢上面的 Quentin。

The configuration needed a / after dancer.cgi:

<IfModule mod_rewrite.c>    
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /cgi-bin/dancer.cgi/$1 [QSA,L]
</IfModule>

Thanks to Quentin above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文