Apache .htaccess:在url中使用两个或多个斜杠时排除特定目录

Apache .htaccess:在url中使用两个或多个斜杠时排除特定目录,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,简言之:我正在开发一个网站,在这个网站上,消费者可以比较多家分公司的公司(服务提供商)。因此,我们使用最多3个“目录”的搜索引擎优化友好url:mydomain.com/1/,mydomain.com/1/2/和mydomain.com/1/2/3。在这些url中,1个是用户可以搜索的分支机构,2个代表城市,3个定义公司名称 我在.htaccess文件中使用以下代码完成了此操作 <IfModule mod_rewrite.c> Options +FollowSymlinks

简言之:我正在开发一个网站,在这个网站上,消费者可以比较多家分公司的公司(服务提供商)。因此,我们使用最多3个“目录”的搜索引擎优化友好url:
mydomain.com/1/
mydomain.com/1/2/
mydomain.com/1/2/3
。在这些url中,1个是用户可以搜索的分支机构,2个代表城市,3个定义公司名称

我在.htaccess文件中使用以下代码完成了此操作

<IfModule mod_rewrite.c>
    Options +FollowSymlinks  
    RewriteEngine On 

    RewriteRule ^(style|media)(/.*)?$ - [L] 

    RewriteRule index\.* index.php [L,QSA]  
    RewriteRule ^([^/]*)/([^/]*)/$ branch.php?branch=$1&city=$2 [L,QSA]  
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ company.php?branch=$1&city=$2&company=$3 [L,QSA]  
    RewriteRule ^([^/]*)/([^/]*)$ branch.php?branch=$1&city=$2 [L,QSA]  
    RewriteRule ^([^/][a-zA-Z0-9-]+)$ branch.php?branch=$1 [L,QSA]  
</IfModule>

选项+FollowSymlinks
重新启动发动机
重写规则^(样式|媒体)(/.*)-[L]
重写规则索引\.*index.php[L,QSA]
重写规则^([^/]*)/([^/]*)/$branch.php?branch=$1&city=$2[L,QSA]
重写规则^([^/]*)/([^/]*)/([^/]*)/?$company.php?分行=1美元,城市=2美元,公司=3美元[L,QSA]
重写规则^([^/]*)/([^/]*)$branch.php?branch=$1和city=$2[L,QSA]
重写规则^([^/][a-zA-Z0-9-]+)$branch.php?branch=$1[L,QSA]
我的样式表位于目录样式中,如果您访问网址mydomain.com或mydomain.com/1,则此功能可以正常工作。地址为mydomain.com/1/,并进一步重定向到正确的文件名,但在
mydomain.com/1/style/
(或
mydomain.com/1/2/style
等)中继续搜索stylesheet.css。我知道这个网站上有很多这样的问题,我试过很多,但没有一个真正符合我的要求

我理解这个场景是不是很难,所以我想我会让它变得更容易(但是因为这个语言让我困惑,我真的不知道现在该怎么办lol)。所以我需要的是:

  • 每个请求都必须重定向到index.php,并将给定的目录作为参数添加。(所以domain.com/1/重写为
    index.php?1=1
    ,domain.com/1/a/b重写为
    index.php?1=1&2=a&3=b,在index.php中,我将查找我必须包含的页面)
    
  • 目录样式和媒体不在此规则中
  • 并非每个目录或文件都必须排除,因为用户可能无法访问目录包含(例如)
我希望你能帮我,因为我把事情搞得一团糟^^


谢谢

使用根相对URL。所以改变
有点晚了,但这对我有帮助。谢谢