我有一个托管Sinatra Web应用程序的目录。由于一些托管限制,我必须通过CGI脚本启动此应用程序;但是,我编写它来解析URL路径部分,而不仅仅是查询字符串。因此,我的大多数请求都写成:
GET /point/get HTTP/1.0
但是,由于CGI脚本,实际调用的URL是(例如)http://server.com/script.cgi/point/get。
是否有办法使用mod_rewrite将script.cgi/
插入到每个请求中?
答案 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]