gpt4 book ai didi

javascript - htaccess 中的查询字符串导致 404 错误

转载 作者:行者123 更新时间:2023-11-28 00:44:38 25 4
gpt4 key购买 nike

目标是重定向查询字符串,例如:

mydomain.com/sheet.csv?z=abcdef

到其各自的文件夹,将查询字符串附加到相应文件所在的文件夹名称中,如下所示:

mydomain.com/charts/abcdef/sheet.csv

我尝试了以下操作,但我尝试的所有操作都会导致 404 错误。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^sheet.csv?z=([_0-9a-z-]+) /$1/sheet.csv [R]

不起作用,导致 404 错误。

RewriteCond %{QUERY_STRING}     ^z=([_0-9a-z-]+)$    [NC]
RewriteRule sheet.csv chart/$1/sheet.csv [NC,L,R=301]

不起作用,导致 404 错误。

我该如何解决这个问题?

<小时/>

更新

发生错误似乎是因为它不是重定向而是查找文件:
mydomain.com/sheet.csv 不存在也永远不会存在

那么为什么它没有重定向,我该如何修复它?

<小时/>

更新2

我做了很多反复试验。我能够让它做一些事情,只需要完成它的工作。

如果我这样做:

RewriteCond %{QUERY_STRING} ^z=([\w-]+) [NC]
RewriteRule ^ charts/%1/sheet.csv? [NC,L,R=301]

然后它会重定向到网址 mydomain.com/home/mydomai/public_html/mydomain/charts/abcdef/sheet.csv

我尝试了我能想到的所有可能的组合,但仍然无法让它直接转到 URL
mydomain.com/charts/abcdef/sheet.csv

请帮忙谢谢!

最佳答案

是的,您无法匹配 RewriteRule 中的 QUERY_STRING。使用 RewriteCond 代替并修复您的正则表达式模式:

RewriteCond %{QUERY_STRING} (?:^|&)z=([^&]+) [NC]
RewriteRule ^(sheet\.csv)/?$ /chart/%1/$1? [NC,L,R=302]

确保将此规则放置在其他规则之前。

关于javascript - htaccess 中的查询字符串导致 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538643/

25 4 0
文章推荐: html - 使用 元素在 pdf 预览中显示的元素在 Chrome 中不是交互式的