gpt4 book ai didi

apache - 将 "static"子域别名限制为非 HTML 文件,否则重定向到 "www"

转载 作者:行者123 更新时间:2023-12-04 21:24:58 26 4
gpt4 key购买 nike

我为我用作无 cookie 子域的网站设置了几个“域别名”,所以 static.domain.com/style.css提供与 www.domain.com/style.css 相同的文件.

但是,如果有人试图访问 static.domain.com/index.htm他们应该是 301 重定向到 www.domain.com/index.htm . mod_rewrite我在根 Web 目录中的规则我认为会起作用,但它们似乎不起作用。

<IfModule mod_rewrite.c>
RewriteEngine On

# "/res/all.20110101.css" => "/res/all.css"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|jpeg|gif)$ $1.$3 [L]

# Except for "static" sub-domains, force "www" when accessed without
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteCond %{HTTP_HOST} !^s-img\.domain\.com [NC]
RewriteCond %{HTTP_HOST} !^static\.domain\.com [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

# If file requested is HTML, force "www"
<FilesMatch "\.(htm|html|php)$">
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\.domain\.com [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
</FilesMatch>

</IfModule>

最佳答案

这将重定向每个不用于静态文件的请求:

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !\.(js|css|png|jpg|jpeg|gif)$ [NC]
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]

它写道:
  • 如果主机名不是 www.domain.com
  • AND 请求的文件没有以允许的扩展名结尾
  • 然后重定向到主(www)域

  • 也用于您的版本控制(您需要非贪婪的 (.+?) 因为 .+ 会吃掉您的整个字符串,并且模式将不匹配):
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+?)\.([0-9]+)\.([a-z]+)$ $1.$3 [L]

    关于apache - 将 "static"子域别名限制为非 HTML 文件,否则重定向到 "www",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5215990/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com