虚拟主机设置 < cgi 脚本

Posted

技术标签:

【中文标题】虚拟主机设置 < cgi 脚本【英文标题】:Virtual host setup < cgi script 【发布时间】:2015-01-12 19:12:16 【问题描述】:

问题

我正在用 c++ 编写一个 cgi 脚本。只要我输入精确的网址,一切都会很好:http://localhost:90/joppli.bot

现在我正在尝试将所有内容都重定向到我的 cgi 脚本。例如:

http://localhost:90/http://localhost:90/foohttp://localhost:90/foo/bar

...应该都呈现与输入http://localhost:90/joppli.bot相同的内容


文件

.htaccess

RewriteEngine On

RewriteRule (.+)/$ /$1 [L,R=301]

RewriteCond %REQUEST_FILENAME -s [OR]
RewriteCond %REQUEST_FILENAME -l [OR]
RewriteCond %REQUEST_FILENAME -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ joppli.bot [NC,L]

虚拟主机

<VirtualHost *:90>
    DocumentRoot /var/www/joppli-bot
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so
    SetHandler fastcgi-script
    
    <Directory "/var/www/joppli-bot">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/www/joppli-bot/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/www/joppli-bot/log/apache2/access.log combined
</VirtualHost>

/var/www/joppli-bot的文件

.htaccess
joppli.bot -> /home/erik/NetBeansProjects/joppli.bot/dist/Debug/GNU-Linux-x86/joppli.bot
log
+ apache2
  + access.log
  + error.log

【问题讨论】:

&lt;Directory "/var/www/joppli-bot"&gt; 块中,将 AllowOverride None 替换为 AllowOverride All(否则您的 htaccess 将被禁用) 【参考方案1】:

感谢Justin IurmanJustin Iurman谁写了以下作为评论,女巫解决了大部分问题:

&lt;Directory "/var/www/joppli-bot"&gt; 块中,替换 AllowOverride None by AllowOverride All(否则您的 htaccess 将被禁用)

我还在 .htaccess 文件的底部添加了DirectoryIndex joppli.bot,以将所有流量从根目录路由到脚本......

【讨论】:

以上是关于虚拟主机设置 < cgi 脚本的主要内容,如果未能解决你的问题,请参考以下文章

源码时代软测干货分享|带你了解CGI支持模块

以管理员身份运行 cgi perl 脚本

apache怎样建立虚拟目录?

无法在虚拟主机 apache 上执行 proxy.cgi

日志服务管理&CGI与FASTCGI区别

在 documentroot(cgi-bin 文件夹)之外运行 PHP 文件