【发布时间】:2016-10-02 15:56:51
【问题描述】:
我希望在打开子域时返回现有的 Wordpress 页面。 www.example.com/custom-wordpress-page。
Server OS 是 CentOS 6.6,而 Web Server (httpd) 是 Apache 2.2.15。
它已经安装并配置了 Wordpress,并为它的 mod_rewrite 配置了 .htaccess 文件。
根文件夹是 /var/www/html。
.htaccess 文件在 /var/www/html/.htaccess :
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
此配置适用于一个域(例如 example.com)。今天我想添加子域(例如 subdomain.example.com)。
我尝试了多种解决方案,包括在 httpd.conf 文件中带/不带 NameVirtualHost 的 VirtualHosts,还添加了 RewrriteCond&RewriteRule 在 .htaccess 文件中的 mod_rewrite 下。
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin email-address-redacted
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerAdmin email-address-redacted
ServerName subdomain.example.com
ServerAlias subdomain.example.com
Redirect permanent / http://example.com/custom-wordpress-page
</VirtualHost>
同样在第一个 VirtualHost 中,我尝试了 *.example.com 而不是 www.example.com。 在第二个中,我尝试使用 ProxyPass 和 ProxyPassReverse 制作反向代理。
我尝试使用服务器的 IP 地址和域名,而不是使用 :*80。
使用带有/不带有 VirtualHosts 的 .htaccess 重写规则没有结果。
subdomain.example.com 始终打开 www.example.com 而不是 www.example.com/custom-wordpress-page。
请记住 - 有很多这样的线程,但我尝试了很多,包括许多教程,但它们不能与 Wordpress 一起使用。
编辑:想要补充一点,DNS 记录中没有通配符。有 NS 记录,一个用于 example.com 的 A 记录,一个用于 subdomain.example.com 的 A 记录和指向 example.com 的 www 的 CNAME 记录。没有*。
【问题讨论】:
-
您是否在
/var/www/html/custom-wordpress-page安装了Wordpress 或在.../custom-wordpress-page安装了一些其他内容? -
不,这不是 Wordpress 安装,它是 WordPress 页面的永久链接。
-
所以您希望子域指向您的 Wordpress 安装的某个永久链接?
-
是的,当然如果可能的话
-
如果您手动调用example.com/custom-wordpress-page,会显示正确的页面吗?还是它也显示主页?
标签: wordpress apache .htaccess mod-rewrite