我在重写网站网址时遇到了一些问题。
我得到的文件夹结构基本上是
public_html
-farms
-public
-functions
基本上我想要的是转换网址:
www.site.com/farms/public/pageInPublicFolder.php INTO www.site.com/farms/pageInPublicFolder.php
因此,如果我执行像site.com/farms/index.php之类的操作,它应该使用公共文件夹中的索引文件,但是会隐藏URL中公共文件夹内的事实。
通过查看网站上的其他主题,我发现了以下代码:
RewriteEngine On
RewriteRule ^/(.*)$ /public/$1
我已将上述代码放在farm文件夹中的.htaccess文件中,但是我只是试图访问任何文件。有什么帮助吗?
答案 0 :(得分:0)
首先,无论何时在.htaccess中使用RewriteRule
,匹配的字符串都不会以斜杠字符开头。所以,你的规则永远不会匹配。
之后,您需要确保不要继续以递归方式应用规则,因为规则都会在重写后再次运行(至少在每个目录的上下文中)。所以,你真正想要的是:
RewriteEngine on
RewriteBase /home/yourdirectory/public_html
RewriteCond %{REQUEST_FILENAME} !public
RewriteRule ^farms/(.*)$ public/$1 [L]
仔细检查这是否适用于您的方案,如果没有,请从您的Apache日志中发布您的错误,以便我可以帮助修复它,如果您愿意的话。