【发布时间】:2020-01-12 08:34:14
【问题描述】:
我有一个 PHP MVC 网站,需要将根目录重定向到公共文件夹。
www 文件夹包括:
- app
- public
- subdom/subdomain
子域文件夹是subdomain.website.com
应用文件夹受 Options -Indexes
限制我需要重定向到公用文件夹,但如果我正在访问子域,则不需要。
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
这总是会让我进入公共文件夹,但我无法访问我的子域。
我总是可以访问我的子域或被重定向到公共文件夹,但即使我想访问我的子域。
这是 Wedos 虚拟主机 www 文件夹中的默认 .htaccess 文件。
RewriteEngine On
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
如何从重定向中排除子域?
website.com 应该是 website.com/public
subdomain.website.com 应该保持这种状态 - 它不应该是 website.com/public
谢谢!
【问题讨论】:
标签: .htaccess redirect directory subdomain