【问题标题】:hidden mod rewrite to sub folder only for certain paths隐藏的 mod 仅针对某些路径重写到子文件夹
【发布时间】:2019-03-18 17:35:21
【问题描述】:

我正在寻找一些建议来处理我需要使用 apache 创建的低于标准的重写设置。

我有一个客户在那里有一个自定义的 cms 站点,但他们在域根目录上也有 wordpress 多站点设置,只有 wp-admin 是可见的。

多站点是子域,这不是问题。文件夹结构如下所示:

/ index.php

如果 url 包含 (wp-*|my-account) 在根域上,我想将其重写到文件夹“wordpress”而不影响 url。

如果 wordpress 安装中的 .htaccess 能够继续正常工作,那就太好了。

我试过了:

RewriteCond %{REQUEST_URI} ^wp-admin/
RewriteCond %{REQUEST_URI} ^wp-includes/
RewriteCond %{REQUEST_URI} ^my-account/
RewriteCond %{REQUEST_URI} ^wp-login.php
RewriteCond %{REQUEST_URI} ^wp-signup.php
RewriteRule (.*) /wordpress/$1 [L]

我也试过了:

RewriteRule ^/?my-account/(.*)$ wordpress/$1 [L,NC]
RewriteRule ^/?wp-admin/(.*)$ wordpress/wp-admin/$1 [L,NC]
RewriteRule ^/?wp-includes/(.*)$ wordpress/wp-includes/$1 [L,NC]
RewriteRule ^/?wp-login.php wordpress/wp-login.php [L,NC]

我似乎无法让它们中的任何一个工作(我在这里找到的答案的两种变体)并且我很确定这取决于我的知识而不是不可能的事情。有什么想法吗?

【问题讨论】:

    标签: php wordpress .htaccess


    【解决方案1】:

    这根本没有经过测试,但它应该可以工作:

    # Pass any url beginning with wp- or my-account to wordpress
    RewriteRule ^(wp-.*|my-account/?$) wordpress/$0
    

    在 wordpress 中 .htaccess 您必须将 RewriteBase / 更改为 RewriteBase /wordpress/

    但是,如果您的永久链接不符合此规则,它们将被破坏。

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 2015-04-06
      • 2013-04-02
      • 2012-09-22
      • 2012-08-23
      • 2010-11-02
      • 1970-01-01
      • 2014-06-30
      • 2012-11-20
      相关资源
      最近更新 更多