Apache重写:在每个请求路径之前添加CGI处理程序?

时间:2011-04-28 02:26:30

标签: apache .htaccess mod-rewrite cgi

我有一个托管Sinatra Web应用程序的目录。由于一些托管限制,我必须通过CGI脚本启动此应用程序;但是,我编写它来解析URL路径部分,而不仅仅是查询字符串。因此,我的大多数请求都写成:

GET /point/get HTTP/1.0

但是,由于CGI脚本,实际调用的URL是(例如)http://server.com/script.cgi/point/get

是否有办法使用mod_rewrite将script.cgi/插入到每个请求中?

1 个答案:

答案 0 :(得分:1)

在你的.htaccess中试试这个:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} !^GET\s/script\.cgi/ [NC]
RewriteCond %{REQUEST_URI} !/script\.cgi/ [NC]
RewriteRule ^(.*)$ /script.cgi/$1 [L,R]

这将执行外部重定向

对于内部重定向,请将此行替换为:

RewriteRule ^(.*)$ /script.cgi/$1 [L]