我在 VPS 上设置了 WordPress 和 DNS,以便将域名重定向到我的服务器。但我很难隐藏服务器的 IP。事实上,当我从我的域名重定向到服务器时,URL 会从 变为www.example.com/wordpress
(XXXXXX/wordpress
是XXXXXX
IP 地址)。
因此,我尝试在域名设置中更改站点 URL。但是,我陷入了服务器和域名或域名本身之间的循环。在设置中,我将其更改http://www.example.com/wordpress
为http://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 配置为代理服务器。