将论坛复制到另一台主机后,登录不起作用。我想问题出在我设置虚拟主机的方式上。
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
如何解决问题或以更好的方式制作虚拟主机?
编辑:
在旧主机上.htaccess
有RewriteBase /forum
,但是有了它,论坛在这里不起作用。如果我删除rewrite ^/forum/(.*) /$1 break;
,它会给出“由于可能的配置错误,请求超出了 10 个内部重定向的限制。”