Apache 端口被自动转发
Apache port being automatically forwarded
我正在尝试将两个不同的目录关联到两个不同的端口。 (8001 和 8004),但每当我尝试在浏览器中访问端口 8004 时,它会自动重定向到端口 8001。
以下是一些似乎相关的配置文件摘录:
在httpd.conf
中:
Listen 80
Listen 8001
Listen 8004
删除了对以下行的评论:
Include etc/apache24/extra/httpd-vhosts.conf
在文件 httpd-vhosts.conf
中:
<VirtualHost *:8001>
DocumentRoot "<path_to_site_1>"
<Directory "<path_to_site_1>">
Require all granted
</Directory>
<Directory "<path_to_site_1>">
AllowOverride All
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
</VirtualHost>
<VirtualHost *:8004>
DocumentRoot "path_to_site_2"
<Directory "path_to_site_2">
Require all granted
</Directory>
<Directory "path_to_site_2">
AllowOverride All
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
</VirtualHost>
这是我尝试过但没有任何改变的列表:
- 在 httpd.conf
中有 VirtualHost 声明
- 更改虚拟主机声明的顺序
- 将端口 8004 更改为另一个端口
- 清除浏览器缓存并尝试不同的浏览器
如果我评论 Listen 8001
,它会破坏一切。
端口 80 似乎指向此 FreeBSD 安装的默认 www 目录并且仍然可以正常工作,因为 phpMyAdmin 安装在那里并且仍然可以访问。
可能值得注意,它是 Oracle VM VirtualBox 上的 FreeBSD 安装 运行。
感谢您提供任何帮助或想法。
不幸的是,在这种情况下,行为不是由于 Apache 配置而是网站安装造成的。一个是 WordPress 安装,另一个是 Drupal 安装。我不知道通过在目录结构中移动这些网站,它们将不再指向正确的位置。 WordPress 正在进行重定向。
问题已通过两种不同的解决方案解决,每个平台一种。
对于 WordPress:
在文件functions.php
中,位于主题目录中:
添加以下行:
update_option( 'siteurl', '<new_url>' );
update_option( 'home', '<new_url>' );
在浏览器中刷新几次网站
- 从文件中删除这两行
对于 Drupal:
(使用drush)在网站所在目录中:
drush cache-rebuild
两个命令的组合解决了两个安装的问题。
我正在尝试将两个不同的目录关联到两个不同的端口。 (8001 和 8004),但每当我尝试在浏览器中访问端口 8004 时,它会自动重定向到端口 8001。
以下是一些似乎相关的配置文件摘录:
在httpd.conf
中:
Listen 80
Listen 8001
Listen 8004
删除了对以下行的评论:
Include etc/apache24/extra/httpd-vhosts.conf
在文件 httpd-vhosts.conf
中:
<VirtualHost *:8001>
DocumentRoot "<path_to_site_1>"
<Directory "<path_to_site_1>">
Require all granted
</Directory>
<Directory "<path_to_site_1>">
AllowOverride All
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
</VirtualHost>
<VirtualHost *:8004>
DocumentRoot "path_to_site_2"
<Directory "path_to_site_2">
Require all granted
</Directory>
<Directory "path_to_site_2">
AllowOverride All
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
</Directory>
</VirtualHost>
这是我尝试过但没有任何改变的列表:
- 在 httpd.conf 中有 VirtualHost 声明
- 更改虚拟主机声明的顺序
- 将端口 8004 更改为另一个端口
- 清除浏览器缓存并尝试不同的浏览器
如果我评论 Listen 8001
,它会破坏一切。
端口 80 似乎指向此 FreeBSD 安装的默认 www 目录并且仍然可以正常工作,因为 phpMyAdmin 安装在那里并且仍然可以访问。
可能值得注意,它是 Oracle VM VirtualBox 上的 FreeBSD 安装 运行。
感谢您提供任何帮助或想法。
不幸的是,在这种情况下,行为不是由于 Apache 配置而是网站安装造成的。一个是 WordPress 安装,另一个是 Drupal 安装。我不知道通过在目录结构中移动这些网站,它们将不再指向正确的位置。 WordPress 正在进行重定向。
问题已通过两种不同的解决方案解决,每个平台一种。
对于 WordPress:
在文件functions.php
中,位于主题目录中:
添加以下行:
update_option( 'siteurl', '<new_url>' ); update_option( 'home', '<new_url>' );
在浏览器中刷新几次网站
- 从文件中删除这两行
对于 Drupal:
(使用drush)在网站所在目录中:
drush cache-rebuild
两个命令的组合解决了两个安装的问题。