Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess:将所有域路由到其各自的子文件夹_Apache_.htaccess - Fatal编程技术网

Apache htaccess:将所有域路由到其各自的子文件夹

Apache htaccess:将所有域路由到其各自的子文件夹,apache,.htaccess,Apache,.htaccess,我已将服务器配置为将所有域路由到我的服务器上的同一文件夹(htdocs)。在该文件夹中,我为每个域创建了单独的文件夹,如下所示: htdocs/ htdocs/domain1.com/ htdocs/domain2.com/ htdocs/domain3.com/ 我希望使用.htaccess路由域,以便在请求domain1.com时,显示文件夹“domain1.com”的内容(等等)。经过大量的尝试和错误,我已经能够生成以下代码,这对于我试图实现的目标非常有用: RewriteCond %{

我已将服务器配置为将所有域路由到我的服务器上的同一文件夹(htdocs)。在该文件夹中,我为每个域创建了单独的文件夹,如下所示:

htdocs/
htdocs/domain1.com/
htdocs/domain2.com/
htdocs/domain3.com/
我希望使用.htaccess路由域,以便在请求domain1.com时,显示文件夹“domain1.com”的内容(等等)。经过大量的尝试和错误,我已经能够生成以下代码,这对于我试图实现的目标非常有用:

RewriteCond %{HTTP_HOST} ^(\w+\.(com|nl|net))$
RewriteCond %{DOCUMENT_ROOT}/%1/%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1/%{REQUEST_URI} -d
RewriteRule ^(.*)$ /%1/$1 [L]

上述代码的唯一缺点是,如果有人请求:,htdocs/domain2.com的内容将显示:-(有什么方法可以防止这种情况发生吗?我缺少什么?

拒绝直接访问域目录:
RewriteCond%{The_REQUEST}\s/[^./]+\(?:com | nl | net)/
\n
RewriteRule^-[F]
+1,用于提出一种简单的不同方法。我仍然希望返回not found,但我想我可以使用您的方法强制使用404。
R=404
应该可以工作。注意,
%{REQUEST\u URI}
包含一个前斜杠。谢谢,这很有效!