Phabricator重写规则配置问题

时间:2014-08-18 17:13:36

标签: apache ubuntu mod-rewrite phabricator

我在安装phabricator时遇到问题。事实上,这似乎是一件简单的事情。我完全复制了示例代码。

apache2.conf:

<VirtualHost *>
  # Change this to the domain which points to your host.
  ServerName localhost

  # Change this to the path where you put 'phabricator' when you checked it
  # out from GitHub when following the Installation Guide.
  #
  # Make sure you include "/webroot" at the end!
  DocumentRoot /var/www/phabricator/webroot

  RewriteEngine on
  RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
  RewriteRule ^/favicon.ico   -                       [L,QSA]
  RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
</VirtualHost>


<Directory "/var/www/phabricator/webroot">
  Require all granted
</Directory>

每当我在浏览器上访问服务器IP时,它都会给我这个错误:

Request parameter '__path__' is not set. Your rewrite rules are not configured correctly.

我发现这是phabricator代码的一部分:

if (!isset($_REQUEST['__path__'])) {
    self::didFatal(
        "Request parameter '__path__' is not set. Your rewrite rules ".
        "are not configured correctly.");
}

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我与Phab有类似的问题并通过以下方式解决了这个问题:

  1. 将目录段放在VirtualHost段中。
  2. 您是否在系统中运行任何其他虚拟服务器?如果是,请指定端口*:80(或尝试使用另一个请记住在声明VirtualHost段之前添加Listen 8081,如果您尝试其他端口
  3. 最后用以下内容替换目录段的内容:

    Order allow,deny
    Allow from all
    

答案 1 :(得分:1)

我也面临同样的问题。 只需放置

RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]

并从apache2.conf删除以下一行。

RewriteRule ^/rsrc/(.*)     -                       [L,QSA]

RewriteRule ^/favicon.ico   -                       [L,QSA]