VPS 上的 WordPress 重定向循环

VPS 上的 WordPress 重定向循环

我在 VPS 上设置了 WordPress 和 DNS,以便将域名重定向到我的服务器。但我很难隐藏服务器的 IP。事实上,当我从我的域名重定向到服务器时,URL 会从 变为www.example.com/wordpressXXXXXX/wordpressXXXXXXIP 地址)。

因此,我尝试在域名设置中更改站点 URL。但是,我陷入了服务器和域名或域名本身之间的循环。在设置中,我将其更改http://www.example.com/wordpresshttp://XXXXXX/wordpress

这是我的 VirtualHost 配置:/etc/apache2/sites-available/default

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName  example
   ServerAlias example.com *.example.com
    DocumentRoot /var/www/
    ErrorLog /var/log/apache2/error.log
    CustomLog /var/log/apache2/access.log combined
<Directory /var/www/wordpress/>
    Order deny,allow
    Allow from all
    Satisfy any
</Directory>
</VirtualHost>

这是我的.htaccess /var/www/wordpress/.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

在我的日志中我们可以看到我有一些内部重定向

strip per-dir prefix: /var/www/wordpress/index.html -> index.html
applying pattern '^index\\.php$' to uri 'index.html'
strip per-dir prefix: /var/www/wordpress/index.html -> index.html
applying pattern '.' to uri 'index.html'
rewrite 'index.html' -> '/wordpress/index.php'
trying to replace prefix /var/www/wordpress/ with /wordpress/
internal redirect with /wordpress/index.php [INTERNAL REDIRECT]
strip per-dir prefix: /var/www/wordpress/index.cgi -> index.cgi
applying pattern '^index\\.php$' to uri 'index.cgi'
strip per-dir prefix: /var/www/wordpress/index.cgi -> index.cgi
applying pattern '.' to uri 'index.cgi'
rewrite 'index.cgi' -> '/wordpress/index.php'
trying to replace prefix /var/www/wordpress/ with /wordpress/
internal redirect with /wordpress/index.php [INTERNAL REDIRECT]
strip per-dir prefix: /var/www/wordpress/index.pl -> index.pl
applying pattern '^index\\.php$' to uri 'index.pl'
strip per-dir prefix: /var/www/wordpress/index.pl -> index.pl
applying pattern '.' to uri 'index.pl'
rewrite 'index.pl' -> '/wordpress/index.php'
trying to replace prefix /var/www/wordpress/ with /wordpress/
internal redirect with /wordpress/index.php [INTERNAL REDIRECT]

欢迎任何建议!

答案1

我找到了一个解决方案,我打电话给我的 DNS 提供商的技术支持,我们发现我配置错误了。为了帮助可能遇到同样问题的人,这里是解决方案。

我的 DNS 提供商是 1&1,我对我的 IP 进行了 http 重定向,但结果错误。正确的方法是将域名设置为 Web 组件,并在 DNS 参数中将 A 记录设置为服务器的 IP 地址。

我犯了这个错误,因为我认为该 Web 组件是用于 1&1 网站构建器制作的网站。

感谢您的回复 user378702

答案2

您可以将 DocumentRoot 更改为 /var/www/wordpress/

DocumentRoot /var/www/wordpress/
编辑:
如果您想隐藏服务器IP,您可以使用新服务器作为 nginx 代理,并将 nginx 重定向到 apache 服务器,并将 dns 配置为代理服务器。

相关内容