我知道这不是原始问题,但我在这里阅读了几篇帖子和问题,但仍然无法理解。
我在localhost(apache服务器)上,默认服务器主目录在/ var / www中。有一个包含多个子文件夹的“项目”文件夹,其中一个名为web,带有index.php文件。所以现在如果我想去索引,我需要使用完整的url localhost / project / web /.
我想让它变得更好,这样如果你去localhost / project你被重定向到localhost / project / web /或者url保持不变但是它有效(抱歉这个天真的表述)。
在.htaccess中,我更改了目录索引,但随后所有链接(因为它们都是相对的)都无效。
我在/ var / www / project中尝试了这个.htaccess:
RedirectMatch permanent ^/$ ./web/
<Files .htaccess>
order allow,deny
deny from all
</Files>
Options -Indexes
但它不起作用,转到localhost / project尝试列出项目目录(由于Options -Indexes,这是我不想要的)。我需要它独立于url中的'localhost',因为它必须在任何地方工作(如果允许.htaccess)
感谢您的任何建议
答案 0 :(得分:0)
RedirectMatch没有像mod_rewrite那样的基础。即使它位于/ project目录中的htaccess文件中,也需要完整的URI:
RedirectMatch permanent ^/project/$ /project/web/
如果您希望它转到/project/web/index.php 没有浏览器重定向(意味着浏览器URL栏中的地址保留在localhost / project /),您需要使用mod_rewrite在内部重写URI:
RewriteEngine On
RewriteRule ^$ web/index.php [L]
请注意,mod_rewrite使用htaccess文件所在的基URI(但删除了“前缀”或前导斜杠)。