我正在尝试为网站设置重定向。
我想要从文件夹重写文件请求到子域名。
此刻,我在我的htaccess中有这个:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} =GET
RewriteCond %{HTTP_HOST} !^example.com
RewriteCond %{HTTP_HOST} ^g.example.com
RewriteRule ^(uploads/(.*)+ uploads/%1%{REQUEST_URI} [L]
想法是当访问者请求时:
http://g.example.com/uploads/somefile.png
他们被送达:
http://example.com/uploads/somefile.png
所以它按预期工作。但问题是:
http://b.example.com/uploads/somefile.png
也有效。
我只想重写http://g.example.com/
。 http://b.example.com/
应该是404。
答案 0 :(得分:1)
这应该有效:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^g.example.com$ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.*)\.(JPG|GIF|PNG) [NC]
RewriteRule ^ - [R=404,L]
RewriteCond %{HTTP_HOST} ^g.example.com$ [NC]
RewriteCond %{THE_REQUEST} !^GET [NC]
RewriteRule ^ - [R=404,L]
第一条规则将确保以JPG,GIF,PNG结尾的任何不是来自g.example.com
的网址向用户发送404未找到的请求。
第二条规则确保只使用GET
请求访问g.example.com。