0

将论坛复制到另一台主机后,登录不起作用。我想问题出在我设置虚拟主机的方式上。

Nginx 代理:

server {
    listen 443 ssl;
    server_name example.com;

    location /forum/ {
        rewrite  ^/forum/(.*) /$1 break;
        proxy_pass http://127.0.0.1:6666;
        ...
    }
}

阿帕奇虚拟主机:

<VirtualHost 127.0.0.1:6666>
    ServerName example.com
    DocumentRoot /my/web/dir/forum

    <Directory /my/web/dir/forum>
            Options FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>
</VirtualHost>

.htaccess

<IfModule mod_rewrite.c>
  Options -MultiViews

  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . rewrite.php [L]
</IfModule>

配置文件

$base_url = 'https://example.com/forum';

这是我至少成功展示论坛的唯一方法。但是,登录和可能的其他东西不起作用。

当我尝试登录时,“确认操作”出现在表单中,并带有错误的链接。

<form method="post" action="https://example.com/login/">
    <div class="hidden">
        <input type="hidden" name="prev_url" value="https://example.com/login/">
        <input type="hidden" name="redirect_url" value="https://example.com/">
        ...
    </div>
    ...
</form>

正确的链接是https://example.com/forum/login

如何解决问题或以更好的方式制作虚拟主机?

编辑:

在旧主机上.htaccessRewriteBase /forum,但是有了它,论坛在这里不起作用。如果我删除rewrite ^/forum/(.*) /$1 break;,它会给出“由于可能的配置错误,请求超出了 10 个内部重定向的限制。”

4

0 回答 0