按老大的教程改了.htaccess文件内容如下:
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule ^(.*)public\/uploads\/(.*)$ https://data.xmssjt.com.cn:8443/xmssjt.com.cn/xmssjt.com.cn/public/uploads/$2 [R,L]
# RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>
按上面内容,应该是把uploads目录映射到备用站的uploads目录下去了,但是点击下载图片时,生成的下载链接还是主站的地址,要怎样才能让下载地址也变成备用站的呢?这样才能从备用站直接下载,不浪费主站流量。
给你参考一下官网的配置吧
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] RewriteCond %{REQUEST_URI} !(\.html|exif\.js|base64uppic\.js) RewriteRule ^(.*)public\/static\/(.*)$ https://x1.soyixia.net/bak/public/static/$2 [R,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)public\/uploads\/(.*)$ https://x1.soyixia.net/bak/public/uploads/$2 [R,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f # RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
具体现象是这样的,使用官方教程,不论主站是否存在文件,都指向备用站访问,确实是正常访问,即使删除了主站文件,一样不影响访问。在单纯的访问上,一切都正常。
但是下载文件时,问题就来了。主站上没有文件时,下载文件时,迅雷里的链接地址还是主站的地址,下载提示自然文件是0字节,无法下载。但是如果主站有文件,那迅雷就会从主站直接下载,链接地址不会跳转到备用站,这样对一些容量较大的附件,就无法实现备用站的功能了。
目前的备用站只能实现图片显示时,为主站分担些流量,但是附件下载功能上,备用站是起不到作用的,因为下载工具依然只认主站,不认备用站,两边都存储附件的话,那下载时还是从主站下载,这样的备用站就没有意义了。
是不是得从附件上传开始解决,这样才能真正意义上实现附件完全转移到备用站,在后台做个设置,可以选择上传位置,把文件直接上传到备用站,这样备用站才能真正意义上实现从浏览到下载的全功能分流。