首页 文章

Htaccess重写url以查找子文件夹中的文件

提问于
浏览
1

我有这样的网络结构:

root/
|-> lib/
|-> web/
   |-> css/
   |-> index.html
|-> .htaccess

我想,当用户请求文件时,apache实际上在web子文件夹中查找但没有重定向 .

例如:http://www.website.com/root/index.html请求的文件是root / web / index.html,但url保持不变

是否有任何方法可以使用mod-rewrite(或其他任何东西)和根目录下的.htaccess来完成,而不指示根(或域),这样任何“root”都可以在不修改.htaccess的情况下工作(例如,如果我将root重命名为“mynewroot”)?

谢谢 .

2 回答

  • 1

    您可以在 root/.htaccess 中使用此规则:

    RewriteEngine On
    
    RewriteRule ^(?!web/).*$ web/$0 [L,NC]
    

    如果请求已经以 /web/ 开头,则 (?!web/) 是否为预先重写以停止重写

  • 1

    是的,这是可能的 . 将.htaccess移动到“root”文件夹所在的父文件夹,并使用通配符重写规则 .

    在你的情况下:

    RewriteRule ^(.*)/$ /$1/web/ [L]
    

相关问题