.htaccess htaccess使用重定向字符串作为目标url一部分

li9yvcax  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(108)

希望有人能帮到我htaccess。我在网上搜了又搜,还是找不到。
目前我正在尝试使用这个:

RewriteCond %{TIME_YEAR}%{TIME_MON}%{TIME_DAY} <20231231
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^test1234$ https://example.com/assets/files/%{QUERY_STRING}.pdf [L]

当访问者输入https://example.com/test1234时,htaccess应该将test1234作为字符串,并将其放在URL的末尾,如https://examples.com/assets/files/test1234.pdf
但我只能得到https://example.com/assets/files/.pdf
一定是我忽略了什么。谁能帮我?

mspsb9vt

mspsb9vt1#

您需要从重写引擎的Angular 阅读更多关于URL的不同部分的信息。请求的URL中没有查询部分,因此您无法以某种方式匹配或使用它。相反,您感兴趣的字符串是URL的 path 组件的一部分。所以你需要匹配它。
看看这个实现:

RewriteEngine on
RewriteRule ^/?([^/]+)/?$ /assets/files/$1.pdf [END]

这条规则可能需要根据真实的使用情况进行调整。您可能希望将其与条件相结合。我只想给你指个方向。
上述方法的一个变体是添加一个条件,首先检查文档的存在:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/([^/]+)/?$
RewriteCond /assets/files%1.pdf -f
RewriteRule ^ /assets/files/%1.pdf [END]

我强烈建议您开始阅读您正在尝试使用的工具的文档。作为典型的开源软件,它具有出色的质量,并提供了很好的示例:https://httpd.apache.org/docs/current/mod/mod_rewrite.html

相关问题