我的网站将类似于 example.com/0xETHEREUMADDRESS
。
所以我想将所有以 0x
开头的请求重定向到 INDEX.HTML
并且 index.html
已经有了其余的代码工作。
我需要 .htaccess
代码将所有以 0x
开头的内容重定向到 index.html
。
这是我尝试过的 .htaccess 规则文件。
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index.html$
RewriteRule (0x*)$ /index.html [L,R=302]
最佳答案
RewriteCond %{REQUEST_URI} !^/index.html$ RewriteRule (0x*)$ /index.html [L,R=302]
正则表达式 (0x*)$
匹配结尾 0
, 0x
, 0xx
、0xxx
等。它与以 0x
开头的 URL 不匹配,因此这不会匹配所需的 URL。 *
字符是一个正则表达式量词,它重复前面的标记 0 次或多次。也不需要捕获组(括号)。
如果规则仅匹配以 Ox
开头的 URL,则检查 URL 的条件为不是 /index.html
因此是多余的。
以下内容将满足您的要求:
RewriteRule ^0x /index.html [R=302,L]
^
是字符串起始 anchor ,因此请求的 URL 必须以 0x
开头。请注意,RewriteRule
模式匹配的 URL 路径不以斜杠开头。
但是,我想知道您是否真的想“重定向”用户? (就像在外部 HTTP 重定向中一样 - 就是这样。)重定向将丢失原始 URL 并将 /index.html
暴露给您的用户。
改为内部“重写”
但是,如果您希望内部重写请求,以便 index.html
可以分析请求的 URL(如您所说,“index.html”)。 html
已经包含了其余工作的代码”)并将 /0xETHEREUMADDRESS
保留在浏览器地址栏中,然后删除 R=302
标志和斜杠前缀在替换字符串上。例如:
RewriteRule ^0x index.html [L]
引用:
关于regex - 将所有以 0x 开头的请求重定向到index.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75502070/