当网站的其余部分位于子目录时,配置 apache 重写以在根目录中提供主页?

当网站的其余部分位于子目录时,配置 apache 重写以在根目录中提供主页?

由于遗留原因,我有一个 wordpress 网站,主要位于一个子目录中:http://www.zmxmusic.com/site。但它也为http://www.zmxmusic.com

我无法访问当前使用的 apache 配置,而且我在新服务器上复制此行为时遇到困难。wordpress 网站位于文件系统的 /srv/zmx/wp/site 中,wordpress 的主页和 siteurl 定义为http://www.zmxmusic.com/site。我在 Apache 配置中有这个:

<VirtualHost *:80>
  ServerName www.zmxmusic.com
  ServerAlias ...omitted... 
  DocumentRoot /srv/zmx/wp

  <Directory /srv/zmx/wp>
    Options FollowSymLinks
    AllowOverride FileInfo Options
    Order allow,deny
    Allow from all
  </Directory>

  LogLevel info
  ErrorLog /var/log/apache2/zmx_app-error.log
  CustomLog /var/log/apache2/zmx_app-access.log combined

  RewriteEngine On
  Options +FollowSymlinks

  RewriteCond %{REQUEST_URI} !^/(site/|index\.php)
  RewriteCond %{SCRIPT_FILENAME} !-f
  RewriteRule ^(.*)$ /site/$1 [L]
</VirtualHost>

但我在根目录下仍然收到拒绝访问提示。有什么建议吗?

编辑

抓得真好。我让它工作起来,把它改成了:

RewriteCond %{REQUEST_URI} !^/site.*
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^/(.*)$ /site/$1 [L]

即使没有添加斜线也可以……它似乎主要是第一个RewriteCond

(因为我还不能回答我自己的问题,所以进行了编辑)

答案1

我让它工作了,把它改为:

RewriteCond %{REQUEST_URI} !^/site.*
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^/(.*)$ /site/$1 [L]

即使没有添加斜线也可以……它似乎主要是第一个RewriteCond

相关内容