Apache www目录中的几个站点。HTC访问问题
我在www目录中有几个Phalcon应用程序 此结构如下所示:Apache www目录中的几个站点。HTC访问问题,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我在www目录中有几个Phalcon应用程序 此结构如下所示: www/ /app1 .htaccess /public .htaccess index.php /app /app2 .htaccess /public .htaccess index.php /app .htaccess在应用程序根目录中: <IfModule m
www/
/app1
.htaccess
/public
.htaccess
index.php
/app
/app2
.htaccess
/public
.htaccess
index.php
/app
.htaccess在应用程序根目录中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
我从Phalcon医生那里得到的。
如果我键入任何相关url,如example.com/app1/page,我将获得正确的页面。
但是我的主页有问题。
浏览器重定向到example.com/app1/public
我需要htaccess的帮助,我花了3个小时寻找解决方案,但没有成功
我无法使用虚拟主机解决此问题。这可能是由mod_dir造成的。默认情况下,mod_dir会将缺少尾部斜杠的目录的每个请求重定向到包含尾部斜杠的URL。由于mod_dir和mod_rewrite都应用于同一个请求,奇怪的重定向正在发生。大概是这样的:
www/
/app1
.htaccess
/public
.htaccess
index.php
/app
/app2
.htaccess
/public
.htaccess
index.php
/app
/app1
/app1/
/app1/
)通过处理管道继续进行/app1/public/
/app1/public/
出现在浏览器的URL位置栏中directorysslash
指令。不过,这个重定向确实有一些非常重要的事情。原因是,当您请求目录时,即使有索引文件,也可以在不带尾随斜杠的情况下列出目录的内容。所以为了避免这种情况,您需要确保关闭索引
因此,在文档根目录中的htaccess文件中,您需要如下内容:
DirectorySlash Off
Options -Indexes
“但我对主页有问题”——你这是什么意思?您具体需要什么URL?应用程序根目录中的.htaccess是什么意思?@CBroe我得到了我的主页,但服务器请求我example.com/app1/public。“app root中的.htaccess”意味着它位于每个/www/app1/和/www/app2/@CBroe中,我在/www/dir中没有任何.htaccess。再说一次:你说的“但是我的主页有问题”是什么意思,你在浏览器中请求的URL是什么?那么,在这种情况下,
RewriteRule^$public/[L]
完全按照您的要求执行…它会将“空”路径的请求重定向到public/
。感谢您的解释,太棒了。但它仍然不起作用:(/public/
在我请求使用http://example.com/app1/
。后面是否有斜杠并不重要。令人惊讶的是,浏览器显示了主页的内容,所以请求进入php。其他页面如http://example.com/app1/page
一切正常,/public/
不会出现,php可以工作。