Wordpress mod_rewrite子目录的异常

时间:2013-04-29 16:42:28

标签: wordpress .htaccess mod-rewrite

我使用的是GoDaddy Delux Hosting,Linux服务器。我在根目录中安装了wordpress。我已经在根目录下启动了一个开发目录。我没有在开发目录下安装wordpress,而是我自己的项目。

我的目标是绕过开发目录的wordpress url重写,并将每个以开发目录开头的url重定向到development / index.php。我已经尝试了许多mod_rewrite组合,但我无法让它工作。除了mysite.com/development/index.php之外,我得到标准的wordpress“找不到页面”页面

我提出的最后一个配置如下:

根目录.htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(development|development/.*)$
RewriteRule . /index.php [L]
</IfModule>

开发目录.htaccess文件:

RewriteEngine On
RewriteRule .* index.php [L]

任何想法如何最好地接近这个?

PS:我没有在Wordpress中使用“开发”作为slu ..

1 个答案:

答案 0 :(得分:6)

在主.htaccess文件中,您应该忽略“开发”下的任何内容 - 由于RewriteBase /,您不需要初始正斜杠,并且可以使用{{1来使尾随斜杠可选}},并且不需要?

在子目录中,忽略不在子目录中的任何内容,以便使用.*$将所有内容发送到请求不是文件或目录的RewriteBase /development/重写。

尝试以下内容:

<强> /。htaccess的

/development/index.php

<强> /development/.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^development/?
RewriteRule . /index.php [L]
</IfModule>