我有一台运行Apache 2.2的服务器,我安装了一个WordPress实例。
我还有一个运行在端口8080上的webapp的tomcat7服务器。
我希望将每个请求发送到tomcat服务器,但博客包括:/ blog,/ blog /,/ blog / 2017/02/10 / blog-title-here /等...
我目前设法让/博客去了正确的地方,但不是个别帖子,他们总是去tomcat7,我不知道为什么。
这是我的配置文件:
<VirtualHost *:80>
RequestHeader set X-Forwarded-Proto "http"
AddDefaultCharset utf-8
ServerAdmin contact@example.com
ServerName server.example.com
<Directory />
Options FollowSymLinks
</Directory>
Alias "/blog" "/var/www/www.example.com"
<Directory /var/www/www.example.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass "/blog" "!"
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
RequestHeader set X-Forwarded-Proto "https"
AddDefaultCharset utf-8
ServerAdmin webmaster@example.com
ServerName server.example.com
<Directory />
Options FollowSymLinks
</Directory>
Alias "/blog" "/var/www/www.example.com"
<Directory /var/www/www.example.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass "/blog" "!"
ProxyPass "/" "http://localhost:8080/"
ProxyPassReverse "/" "http://localhost:8080/"
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/wildcard.example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/wildcard.example.com.key
SSLCertificateChainFile /etc/apache2/ssl/rapidssl_intermediate.crt
</VirtualHost>
主要部分是:
Alias "/blog" "/var/www/www.example.com"
(...)
ProxyPass "/blog" "!"
ProxyPass "/" "http://localhost:8080/"
我将使用/ blog开头的所有内容别名并将其发送到wordpress所在的位置而不是代理它。代理从/到tomcat的所有内容。
我唯一无法弄清楚为什么它不起作用是对/ blog / not working的请求。
我已经尝试过ProxyPassMatch,AliasMatch也无法做到。 任何帮助表示赞赏。