Wordpress mod_rewrite子目录的异常

Bur*_*rak 1 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>
Run Code Online (Sandbox Code Playgroud)

开发目录.htaccess文件:

RewriteEngine On
RewriteRule .* index.php [L]
Run Code Online (Sandbox Code Playgroud)

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

PS:我没有在Wordpress中使用"开发"作为slug.

dou*_*arp 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>
Run Code Online (Sandbox Code Playgroud)

/development/.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>
Run Code Online (Sandbox Code Playgroud)