我正在尝试使用.htaccess
重写子域请求到我的服务器中的子文件夹。我想让mail.domain.com
查看位于根目录下的mail
文件夹。我可以用下面的代码
RewriteEngine on
RewriteCond %{HTTP_HOST} mail.domain.com$
RewriteCond %{REQUEST_URI} !^/mail
RewriteRule ^(.*)$ /mail/$1 [L]
This WORKS正确。当我浏览到mail.domain.com
时,我得到了domain.com/mail/index.php
的内容。
但是,这不适用于子域内的子文件夹。即,当我浏览到mail.domain.com/installer
它不给domain.com/mail/installer/index.php
的内容。相反,它显示404错误。我还尝试了从htaccess子域指向的代码。不知怎么的,我无法得到输出。这种方法也会产生同样的问题。我做错了什么?
注意:
- 我不需要重定向条件。想要通过重写规则实现。
- 我使用openshift服务器。create
domain.com
&mail.domain.com
别名。 - 根目录包含wordpress与
没有在。htaccess规则。
编辑
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
当我删除上面的wordpress htaccess都工作得很好。所以它导致404错误在子域子文件夹。请帮助我能做的wordpress漂亮的url和子域子文件夹的工作?
注意:我真的很抱歉。Wordpress通过web界面添加了这个,我没有注意到。
保持root .htaccess如下:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} =mail.domain.com
RewriteRule ^((?!mail).*)$ mail/$1 [L,NC]
RewriteRule ^(index'.php$|mail) - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]