我使用的是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 ..
答案 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>