【问题标题】:Rewrite first level subdirectory to root directory passing folder name .htaccess将第一级子目录重写为根目录传递文件夹名称.htaccess
【发布时间】:2020-02-11 15:06:50
【问题描述】:

我有一个应用程序,我在其中传递客户名称以确定要在页面上显示哪些信息。

之前我将其设置为基于子域,例如https://client1.company.comhttps://client2.company.com。我会解析子域以确定客户名称,每个子域都指向服务器上的同一组文件。

我必须将其更改为基于子目录,所以现在应该是 https://company.com/client1/https://company.com/client2/ 等。

是否有一个 .htaccess 重写规则,我可以使用它基本上将任何带有子目录的请求重写回根目录?这样,当 ajax 请求从 https://company.com/client2/ 发送到服务器时,它会将请求重定向到 https://company.com/ajax.php,而不是将请求发送到 https://company.com/client2/ajax.php 并且找不到。

在加载样式表等时,它会将https://company.com/client1/assets/css/style.css 重定向到https://company.com/assets/css/style.css

【问题讨论】:

    标签: php .htaccess mod-rewrite


    【解决方案1】:

    您可以在站点根目录 .htaccess 中使用此规则:

    RewriteEngine On
    
    # redirection to a level up
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^[\w-]+(/.*)$ $1 [L,R=301]
    

    【讨论】:

    • 有没有办法做到这一点,所以它不仅仅是 ajax.php?理想情况下,从子文件夹请求的所有内容都将向上路由 1 级(不包括我将指定的几个目录)
    • 是的,所有东西都可以重定向到更高的级别,但是什么时候应该调用ajaz.php
    • 基本上我希望有任何文件,如 /client1/request.php、/client1/ajax.php、/client1/anything.php 需要重定向到一个级别(无需指定.htaccess 中的文件名)。这有意义吗?
    猜你喜欢
    • 1970-01-01
    • 2015-11-11
    • 2018-08-09
    • 1970-01-01
    • 2014-10-24
    • 2012-10-23
    • 2017-01-29
    • 2021-09-03
    • 2011-01-19
    相关资源
    最近更新 更多