我正在尝试使用.htaccess
将子域请求重写到我服务器中的子文件夹。我希望mail.domain.com
查看位于根目录中的mail
文件夹。我可以使用以下代码实现此目的
RewriteEngine on
RewriteCond %{HTTP_HOST} mail.domain.com$
RewriteCond %{REQUEST_URI} !^/mail
RewriteRule ^(.*)$ /mail/$1 [L]
这可以正常工作。当我浏览mail.domain.com
时,我会收到domain.com/mail/index.php
的内容。
但是,这不适用于子域内的子文件夹。即,当我浏览mail.domain.com/installer
时,它不会提供domain.com/mail/installer/index.php
的内容。相反,它显示404错误。我还尝试了htaccess subdomain pointing的代码。不知怎的,我无法得到输出。该方法也给出了同样的问题。我做错了什么?
注意:
domain.com
& mail.domain.com
别名。修改
<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漂亮网址和子网域子文件夹做些什么才能工作?
注意:我真的很抱歉。 Wordpress通过网络界面添加了这个,我没注意到。
答案 0 :(得分:1)
保持你的根.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]