【问题标题】:htaccess: multiple sub folders and website accesshtaccess:多个子文件夹和网站访问
【发布时间】:2023-03-04 10:10:01
【问题描述】:

我无法正确设置我的 htaccess。目前我的 htdocs 文件夹中有以下情况和文件结构:

  • .htaccess
  • /网站
  • /clients/blabla
  • /某个文件夹

正如您可能猜到的,“网站”文件夹包含导航到 http://mydomain.com 时应可访问的所有文件 - 这适用于当前的 htaccess:

RewriteEngine on 

# remove www
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]

# subfolder
RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/website/
RewriteRule (.*) /website/$1

# clean urls
RewriteRule ^website/([a-z0-9\-]+)$ website/$1.php

我的问题:虽然我希望我的网站能够以现在的方式访问,但我也希望能够访问 http://mydomain.com/clients/blalahttp://mydomain.com/somefolder 等...使用我当前的 htaccess 这会导致 404 错误说“在此服务器上找不到请求的 URL /website/clients/blabla。”

我需要在我的 htaccess 中添加/更改什么才能使其正常工作?

提前致谢

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    我认为您只需要添加更多条件即可排除它们。

    RewriteCond %{REQUEST_URI} !^/clients/
    RewriteCond %{REQUEST_URI} !^/somefolder/
    

    并将这些放在子文件夹部分的重写规则前面。如果 /website/ 已经包含 /clients//somefolder/,这将阻止它嵌入到 URI 中

    【讨论】:

      【解决方案2】:

      这应该有效。

      RewriteEngine on 
      
      # remove www
      RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC]
      RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]
      
      # subfolder
      RewriteCond %{HTTP_HOST} ^mydomain.com$ [OR]
      RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
      RewriteCond %{REQUEST_URI} !^/website/
      RewriteCond %{REQUEST_URI} !^/somefolder/
      RewriteCond %{REQUEST_URI} !^/client/blabla/
      RewriteRule (.*) /website/$1
      
      # clean urls
      RewriteRule ^website/([a-z0-9\-]+)$ website/$1.php
      

      【讨论】:

        猜你喜欢
        • 2016-01-18
        • 1970-01-01
        • 1970-01-01
        • 2023-04-11
        • 2011-04-23
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        • 2020-04-04
        相关资源
        最近更新 更多