Apache无法检测到REQUEST_URI

wi3ka0sx  于 2022-12-30  发布在  Apache
关注(0)|答案(1)|浏览(166)

我需要用Apache拦截这样写的URL请求:www.blog.domain.com
然后使用类似的条件执行permenant重定向:

RewriteCond %{REQUEST_URI} !^www.blog.domain\.com$ [NC]
RewriteRule ^(.*)$ https://blog.domain.com/$1 [R=301,L]

重要:此条件将包含在www.domain.com的htaccess文件中

roejwanj

roejwanj1#

REQUEST_URI不包含请求或完整URL中指定的http主机。文档清楚地显示%{REQUEST_URI}包含所请求URL的 * 路径组件 *。
如果你想测试请求的http主机,你需要使用%{HTTP_HOST}代替:

RewriteCond %{HTTP_HOST} !^www\.blog\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://blog.domain.com/$1 [R=301,QSA,L]

考虑到您在上面提到的%{REQUEST_URI},我们可以简化它:

RewriteCond %{HTTP_HOST} !^www\.blog\.domain\.com$ [NC]
RewriteRule ^ https://blog.domain.com%{REQUEST_URI} [R=301,QSA,L]

但是,尽管如此,我恐怕我修改的你最初的方法没有什么意义,我希望你实际上是在寻找这样的东西:

RewriteCond %{HTTP_HOST} !^blog\.domain\.com$ [NC]
RewriteRule ^ https://blog.domain.com%{REQUEST_URI} [R=301,QSA,L]

相关问题