由于遗留原因,我有一个 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