【发布时间】:2014-02-22 01:19:44
【问题描述】:
这个问题已经被问过很多次了,但是我遇到了一个通常的解决方案不起作用的例子;
经过验证:RedirectMatch 301 .*/author/.*$ / 在一台服务器上运行,但在另一台服务器上运行。
具体来说,我们需要将所有对 WordPress 作者档案的请求重定向到网站的前端。在其他地方,人们问为什么有人想这样做。这超出了问题的范围,但它是为了隐藏作者姓名。 CMS 中存在系统替代方案,但它们对实际作者姓名(重定向到主页)和 no-such-author(未找到 404 页面)的作用不同。这线索太多了。给作者起昵称还有其他方法,但它们都是有漏洞的。
所以我们在一台 Apache 服务器上的所有网站上都使用了上面的代码,它的运行就像一个冠军。在 nginx 服务器上,我们尝试了许多版本的 Redirect 和 Rewrite 均无济于事。共享托管服务提供商没有多大帮助。
需要屏蔽http://domain.com/blog/author/name
和http://domain.com/author/name
除了:
RedirectMatch 301 .*/author/.*$ /
【问题讨论】:
-
此其他服务器在您的 htaccess 文件(和
RedirectMatch)所在的目录中设置了allowoverride fileinfo? -
没有干净的方法来检查此共享服务器 - 但其他 .htaccess 重写规则有效(例如
RewriteRule . /index.php [L])表明是allowoverride fileinfo或all已设置。 -
如果您有其他规则,您确定这些规则不会影响重定向吗(请注意 mod_alias (redirectmatch) 与 mod_rewrite (rewriterule) 是不同的模块,因此两者最终都会被应用 同一个请求)
-
我审查过,但相同的规则在另一台 (apache) 服务器上运行良好。并不是说这是 nginx 的问题 - 我猜是 nginx 配置与主机 w/apache 的工作原理。
标签: wordpress .htaccess redirect