隐藏的mod仅针对某些路径重写到子文件夹

时间:2018-10-13 21:00:40

标签: php wordpress .htaccess

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

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

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

/ index.php <<自定义cms条目 ... wordpress / << WordPress安装的根目录   wp-admin /   wp-includes /   index.php   .htaccess

在根域上,如果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]

我似乎无法让他们中的任何一个工作(在此处找到答案的两个变体),并且我非常确定这是我所知而不是不可能的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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