【问题标题】:Permit "." and "-" in mod rewrite?允许 ”。”和“-”在mod重写?
【发布时间】:2013-11-25 01:19:11
【问题描述】:

快速提问!

我有一条 Mod_rewrite 规则,指出我的域目录之后是用户名(在此之前我有其他规则,但这是最后一条规则):

RewriteRule ^([0-9a-z]+)/?$ index.php?type=profile&user=$1 [L]

例如:domain.com/roger 会将我带到 roger 的个人资料。

但是,我使用 Facebook 登录并意识到有些用户有“。”和“-”在他们的用户名中签名。

如何调整以下表达式以支持这些字符?

([0-9a-z]+)/?$ 

谢谢一百万!

【问题讨论】:

    标签: regex .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    通过在字符类中允许点和连字符来稍微改变你的正则表达式:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^([0-9a-z.-]+)/?$ index.php?type=profile&user=$1 [L,QSA,NC]
    

    请注意,您将需要 2 个RewriteCond 条件以避免重写有效文件和有效目录,否则包含点会导致循环。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2013-02-01
      相关资源
      最近更新 更多