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

时间:2013-01-21 14:47:03

标签: apache .htaccess mod-rewrite

简而言之:我正在一个网站上工作,消费者可以在几个分支机构中比较公司(服务提供商)。因此,我们与SEO友好的网址一起使用max。 3个“目录”:mydomain.com/1/mydomain.com/1/2/mydomain.com/1/2/3。在这些网址为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>

我的样式表位于目录样式中,如果您转到webaddress mydomain.com或mydomain.com/1,这样可以正常工作。地址mydomain.com/1/并进一步重定向到正确的文件名,但继续在mydomain.com/1/style/(或mydomain.com/1/2/style等)中搜索stylesheet.css。我知道这个网站上有很多这样的问题,我尝试了很多这些问题,但是没有一个能真正做到我想要的。

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

  • 每个请求都必须重定向到index.php,并将给定目录添加为参数。 (所以domain.com/1/重写为index.php?1=1,domain.com/1 / a / b重写为index.php?1=1&2=a&3=b, in index.php我将查找我必须包含的页面。
  • Dirs style media 将从此规则中排除。
  • 并非每个必须排除的dir或文件都被排除在外,因为用户可能无法访问目录包含(例如)

我希望你能帮助我,因为我弄得一团糟^^

谢谢!

0 个答案:

没有答案