我必须对一个. htaccess文件进行重定向。
我想从子域URL访问文件夹的内容,如下所示:
subdomain.domain.com/* => domain.com/folder/*
该文件夹包含PDF文件,我想使用此URL访问它,例如:
subdomain.domain.com/file.pdf
我是htaccess重定向规则的新手,我有点迷路了。
我尝试了类似的方法,并在https://htaccess.madewithlove.com/中进行了测试
RewriteCond %{HTTP_HOST} ^subdomain.domain.com/*$
RewriteRule ^(.*) https://domain/folder/ [L,R=301]
这段代码可以在测试器上运行,但是在我的网站上却出现了错误:"连接已重置"。
你对此有什么想法吗?
- 更新**
我听从了一些建议,但没有用
RewriteCond %{HTTP_HOST} ^subdomain\.example\.com/
RewriteRule (.+\.pdf)$ https://example.com/folder/$1 [R=302,L]
1条答案
按热度按时间eanckbw91#
您没有对捕获的URL路径(即
(.*)
)执行任何操作,因此将始终重定向到https://domain/folder/
(无文件)。我也会问这是否应该是一个301(永久)重定向。也许302(临时)重定向会更好在这里?注意301是缓存的,所以你需要在测试之前清除你的浏览器缓存。
应该是这样的:
$1
反向引用包含在RewriteRule
* 模式 * 中捕获的URL路径。Host
头文件(即HTTP_HOST
服务器变量的值)只包含 hostname,没有URL路径部分(幸运的是/*
匹配斜杠0次或更多次,所以它在测试中仍然“工作”)。但是,如果该文件夹只包含
.pdf
文件,则您应该限制更多,只重定向.pdf
请求。例如: