【问题标题】:Adding dot to rewrite rule添加点以重写规则
【发布时间】:2015-09-14 15:42:48
【问题描述】:

我想在最后一个重写规则中为我的变量添加一个点 (.),但我不知道在此语法中将其放在何处。它会追随 A-Z 吗?

ErrorDocument 404 /
ErrorDocument 403 /

Options ALL -Indexes

RewriteEngine On
RewriteRule ^([0-9/.]+)$ index.php?Patch_No=$1 [NC,L]
RewriteRule ^([0-9/.]+)&([0-9a-zA-Z_-]+)$ index.php?Patch_No=$1&tab=$2 [NC,L]
RewriteRule ^patches php/patches.php [NC,L]
RewriteRule ^([\s'0-9a-zA-Z_-]+)$ index.php?Champion=$1 [NC,L]

【问题讨论】:

  • 点可以放在方括号内的任何位置,方括号是字符集。

标签: regex .htaccess url-rewriting


【解决方案1】:

由于RewriteRule ^([\s'0-9a-zA-Z_-]+)$ 是一系列字符,因此这些规则适用。 简而言之,您应该可以将其放在 A-Z 之后。 只要记住逃避角色。 像这样。

RewriteRule ^([\s'0-9a-zA-Z\._-]+)$ index.php?Champion=$1 [NC,L]

但是,您可能想考虑将正则表达式更改为更具包容性,以防万一出现带有特殊字符的冠军? 也许只说除反斜杠问号之外的任何字符。

RewriteRule ^([^\/?]+)$ index.php?Champion=$1 [NC,L]

希望对你有帮助!

ps:如果英雄总是以字母开头,你可以这样写。

RewriteRule ^(\D[^\/?]+)$ index.php?Champion=$1 [NC,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多