WP多站点.htaccess干扰cgi-bin

时间:2014-10-17 作者:Faeldray

我目前正在为我的公司安装WordPress多站点,我遇到了一个问题。

设置是multisite runs out of a subdirectory (/wp) 但似乎是网站的根源。它正在使用subdirectories for each site 在网络上(例如domain.com/news)。

我一直在关注wordpress。org指南,安装运行良好。问题是,我发现我需要为WordPress添加的mod\\u重写会导致任何问题。/cgi-bin文件夹中的pl脚本停止工作(错误403)。我知道它们非常古老;我想把它们换成更好的表单脚本,但这是下一次的战斗。cgi-bin脚本对业务非常重要,因此在找到解决方案之前,我无法继续进行任何WordPress开发。

我找到的解决方案是针对非多站点Wordpress的,似乎对我的设置不起作用。我不太熟悉。htaccess和mod\\u重写,所以我不确定应该做什么。

下面是我需要添加到的代码。htaccess位于站点根目录:

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wp/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ wp/$2 [L]
RewriteRule . index.php [L]
我想我应该添加这样一条规则来让它忽略/cgi-bin:

RewriteCond %{REQUEST_URI} !^/cgi-bin/
但要么这是错误的规则,要么我把它放错地方了。有人能帮我弄清楚吗?

1 个回复
最合适的回答,由SO网友:Faeldray 整理而成

事实证明,问题不是WP per say,而是由于某些服务器设置,mod\\u重写被禁止。直到服务器人员发送了一个错误日志,日志中充满了包含以下内容的消息,我才意识到这一点:

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden
为了使其正常工作,他必须在其中一个服务器配置文件中激活以下Symlinks和SymlinksFownerMatch(我不确定是哪一个):

<Directory [REMOVED]>
       Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
       AllowOverride None
       #Options None
       Order allow,deny
       Allow from all
</Directory>

结束

相关推荐

.htaccess正则表达式,用于将子域重定向到根域并重定向旧的永久链接

好的,我在网站上有一个博客。我的网站。com,最近将所有内容迁移到mysite的新wp安装中。com。我想重定向博客中的所有帖子。我的网站。com到mysite。com和permalink结构。博客我的网站。com为/%年%/%月%/%日%/%postname%/我的网站。com为/%类别%/%postname%/目标是如果有人博客我的网站。com/%年%/%月%/%日%/%postname%/它们将被重定向到我的网站。com为/%类别%/%postname%/我想最终删除博客上的所有内容。我的网站。co