1

我正在使用 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 中使用“开发”作为蛞蝓。

4

1 回答 1

6

在主.htaccess文件中,您应该忽略“开发”下的任何内容-您不需要初始正斜杠,因为RewriteBase /您可以使用 a 使尾部斜杠可选?,并且不需要.*$.

在子目录中,您将忽略子目录中没有的任何内容以进行重写,使用RewriteBase /development/将所有内容发送到/development/index.php请求不是文件或目录的地方。

尝试以下方法:

/.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>

/开发/.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /development/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /development/index.php [L]
</IfModule>
于 2013-04-29T17:18:03.873 回答