htaccess - 在向用户发送之前更改部分请求的URL?

时间:2017-05-15 09:29:17

标签: html .htaccess lowercase

我有以下问题:我们有一个内部文档系统,可以生成HTML格式的帮助文件。最近升级了生成它们的软件,现在大写和非大写文件夹之间存在命名问题。

旧网址:

https://documentation.example.com/de/101/Skins/Default/Stylesheets/Components/Tablet.css

新网址:

https://documentation.example.com/de/101/skins/default/stylesheets/components/tablet.css

我们有不同的受影响的文件夹,因此网址可能如下所示(有很多变体):

https://documentation.example.com/en/103/Skins/Default/Stylesheets/Components/Tablet.css
https://documentation.example.com/de/456/Skins/Default/Stylesheets/Components/Tablet.css
https://documentation.example.com/en/324/Skins/Default/Stylesheets/Components/Tablet.css

我希望能够获取请求的网址,查找此字符串:“/Skins/Default/Stylesheets/Components/Tablet.css”将其更改为小写,然后将用户发送到新更改的网址。

我发现的一些解决方案需要访问我不能访问的vhosts文件。我也无法上传PHP文件或类似内容。

我的问题是否可以单独使用htaccess文件解决?如果是的话怎么样?

1 个答案:

答案 0 :(得分:0)

您需要在托管css的server / vhost配置文件中定义rewrite map

RewriteMap lc int:tolower

然后在您的htaccess文件中,您可以创建如下规则: RewriteCond %{REQUEST_URI} [A-Z] RewriteRule ^(.*)$ ${lc:$1} [L,NC]

如果您需要帮助,请告诉我。此htaccess规则将导致每个URL都转换为小写。这是一个通用的htaccess,你可以使它更精确,专门搜索你需要的URL。