【问题标题】:Mod Rewrite Regex - Match a url containting A but not BMod_rewrite Regex - 匹配包含 A 但不包含 B 的 url
【发布时间】:2011-07-05 07:25:51
【问题描述】:

我正在尝试通过前端控制器发送请求的页面。

我需要匹配以下网址

domain.com/admin/
domain.com/admin/somepage

但我在 /admin 子文件夹中也有一些我不想匹配的资产

domain.com/assets
domain.com/assets/mything.css
domain.com/assets/mything.css
domain.com/xml/myxml.xml

我已经编写了以下规则(在站点根目录的 .htaccess 内,适用于所有 5 个示例 URL。我如何让它只匹配前两个?)

RewriteBase / 
# index.php is the front controller
RewriteRule ^(admin) admin/index.php [L,QSA] 

我可以看到两种方法(我想知道如何使用文件夹“assets”和“xml”作为排除项并设置扩展名)

【问题讨论】:

    标签: regex apache mod-rewrite url-rewriting front-controller


    【解决方案1】:

    我会在最终路由规则之前使用否定的RewriteCond

    RewriteCond %{REQUEST_URI} !assets 
    

    【讨论】:

    • 谢谢 - 这可行,但它也匹配 domain.com/admin/something/something/assets 之类的内容。如果 /assets 直接出现在“/admin”之后,我只想匹配它 - 这可能吗?
    猜你喜欢
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多