2013-04-02 64 views
2

我想为我的WordPress图像设置一个子域,我一直在设置一个虚拟主机,它指向默认的WordPress上传目录。问题在于,子域被wordpress .htaccess覆盖。wordpress子域的图像htaccess问题

apache的虚拟主机

<VirtualHost *:80> 
     ServerName img.mydomain.com 
     ServerAlias img.mydomain.com 
     DocumentRoot C:/inetpub/wwwroot/mydomain.com/wp-content/uploads/ 
</VirtualHost> 

如果我叫子域,我得到一个502错误

我的.htaccess

#RewriteRule ^(.*)-en/?$ /$1/ [L] 

RewriteCond %{HTTP_HOST} http://www.mydomain.com [NC] 
#RewriteRule ^tag/(.*)$ http://www.mydomain.com/$1 [L,R=301] 
RewriteRule ^\d{4}/\d{2}/\d{2}/(.*)$ http://www./mydomain.com/$1 [L,R=301] 
RewriteRule ^\d{4}/\d{2}/(.*)$ http://www./mydomain.com/$1 [L,R=301] 



RewriteCond %{HTTP_HOST} http://www./mydomain.co.uk [NC] 
#RewriteRule ^tag/(.*)$ http://www./mydomain.co.uk/$1 [L,R=301] 
RewriteRule ^\d{4}/\d{2}/\d{2}/(.*)$ http://www./mydomain.co.uk/$1 [L,R=301] 
RewriteRule ^\d{4}/\d{2}/(.*)$ http://www./mydomain.co.uk/$1 [L,R=301] 




RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

RewriteRule ^news-sitemap.xml /?feed=sitemap-news [L] 

# BEGIN W3TC CDN 
<FilesMatch "\.(ttf|otf|eot|woff)$"> 
<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "*" 
</IfModule> 
</FilesMatch> 
# END W3TC CDN 
# BEGIN W3TC Browser Cache 
<IfModule mod_mime.c> 
    AddType text/css .css 
    AddType text/x-component .htc 
    AddType application/x-javascript .js 
    AddType application/javascript .js2 
    AddType text/javascript .js3 
    AddType text/x-js .js4 
    AddType text/html .html .htm 
    AddType text/richtext .rtf .rtx 
    AddType image/svg+xml .svg .svgz 
    AddType text/plain .txt 
    AddType text/xsd .xsd 
    AddType text/xsl .xsl 
    AddType text/xml .xml 
    AddType video/asf .asf .asx .wax .wmv .wmx 
    AddType video/avi .avi 
    AddType image/bmp .bmp 
    AddType application/java .class 
    AddType video/divx .divx 
    AddType application/msword .doc .docx 
    AddType application/vnd.ms-fontobject .eot 
    AddType application/x-msdownload .exe 
    AddType image/gif .gif 
    AddType application/x-gzip .gz .gzip 
    AddType image/x-icon .ico 
    AddType image/jpeg .jpg .jpeg .jpe 
    AddType application/json .json 
    AddType application/vnd.ms-access .mdb 
    AddType audio/midi .mid .midi 
    AddType video/quicktime .mov .qt 
    AddType audio/mpeg .mp3 .m4a 
    AddType video/mp4 .mp4 .m4v 
    AddType video/mpeg .mpeg .mpg .mpe 
    AddType application/vnd.ms-project .mpp 
    AddType application/x-font-otf .otf 
    AddType application/vnd.oasis.opendocument.database .odb 
    AddType application/vnd.oasis.opendocument.chart .odc 
    AddType application/vnd.oasis.opendocument.formula .odf 
    AddType application/vnd.oasis.opendocument.graphics .odg 
    AddType application/vnd.oasis.opendocument.presentation .odp 
    AddType application/vnd.oasis.opendocument.spreadsheet .ods 
    AddType application/vnd.oasis.opendocument.text .odt 
    AddType audio/ogg .ogg 
    AddType application/pdf .pdf 
    AddType image/png .png 
    AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx 
    AddType audio/x-realaudio .ra .ram 
    AddType application/x-shockwave-flash .swf 
    AddType application/x-tar .tar 
    AddType image/tiff .tif .tiff 
    AddType application/x-font-ttf .ttf .ttc 
    AddType audio/wav .wav 
    AddType audio/wma .wma 
    AddType application/vnd.ms-write .wri 
    AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw 
    AddType application/zip .zip 
</IfModule> 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType text/css A31536000 
    ExpiresByType text/x-component A31536000 
    ExpiresByType application/x-javascript A31536000 
    ExpiresByType application/javascript A31536000 
    ExpiresByType text/javascript A31536000 
    ExpiresByType text/x-js A31536000 
    ExpiresByType text/html A3600 
    ExpiresByType text/richtext A3600 
    ExpiresByType image/svg+xml A3600 
    ExpiresByType text/plain A3600 
    ExpiresByType text/xsd A3600 
    ExpiresByType text/xsl A3600 
    ExpiresByType text/xml A3600 
    ExpiresByType video/asf A31536000 
    ExpiresByType video/avi A31536000 
    ExpiresByType image/bmp A31536000 
    ExpiresByType application/java A31536000 
    ExpiresByType video/divx A31536000 
    ExpiresByType application/msword A31536000 
    ExpiresByType application/vnd.ms-fontobject A31536000 
    ExpiresByType application/x-msdownload A31536000 
    ExpiresByType image/gif A31536000 
    ExpiresByType application/x-gzip A31536000 
    ExpiresByType image/x-icon A31536000 
    ExpiresByType image/jpeg A31536000 
    ExpiresByType application/json A31536000 
    ExpiresByType application/vnd.ms-access A31536000 
    ExpiresByType audio/midi A31536000 
    ExpiresByType video/quicktime A31536000 
    ExpiresByType audio/mpeg A31536000 
    ExpiresByType video/mp4 A31536000 
    ExpiresByType video/mpeg A31536000 
    ExpiresByType application/vnd.ms-project A31536000 
    ExpiresByType application/x-font-otf A31536000 
    ExpiresByType application/vnd.oasis.opendocument.database A31536000 
    ExpiresByType application/vnd.oasis.opendocument.chart A31536000 
    ExpiresByType application/vnd.oasis.opendocument.formula A31536000 
    ExpiresByType application/vnd.oasis.opendocument.graphics A31536000 
    ExpiresByType application/vnd.oasis.opendocument.presentation A31536000 
    ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000 
    ExpiresByType application/vnd.oasis.opendocument.text A31536000 
    ExpiresByType audio/ogg A31536000 
    ExpiresByType application/pdf A31536000 
    ExpiresByType image/png A31536000 
    ExpiresByType application/vnd.ms-powerpoint A31536000 
    ExpiresByType audio/x-realaudio A31536000 
    ExpiresByType image/svg+xml A31536000 
    ExpiresByType application/x-shockwave-flash A31536000 
    ExpiresByType application/x-tar A31536000 
    ExpiresByType image/tiff A31536000 
    ExpiresByType application/x-font-ttf A31536000 
    ExpiresByType audio/wav A31536000 
    ExpiresByType audio/wma A31536000 
    ExpiresByType application/vnd.ms-write A31536000 
    ExpiresByType application/vnd.ms-excel A31536000 
    ExpiresByType application/zip A31536000 
</IfModule> 
<IfModule mod_deflate.c> 
    <IfModule mod_headers.c> 
     Header append Vary User-Agent env=!dont-vary 
    </IfModule> 
     AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json 
    <IfModule mod_mime.c> 
     # DEFLATE by extension 
     AddOutputFilter DEFLATE js css htm html xml 
    </IfModule> 
</IfModule> 
<FilesMatch "\.(css|htc|js|js2|js3|js4|CSS|HTC|JS|JS2|JS3|JS4)$"> 
    FileETag MTime Size 
    <IfModule mod_headers.c> 
     Header set Pragma "public" 
     Header set Cache-Control "public, must-revalidate, proxy-revalidate" 
     Header set X-Powered-By "W3 Total Cache/0.9.2.8" 
    </IfModule> 
</FilesMatch> 
<FilesMatch "\.(html|htm|rtf|rtx|svg|svgz|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|SVGZ|TXT|XSD|XSL|XML)$"> 
    FileETag MTime Size 
    <IfModule mod_headers.c> 
     Header set Pragma "public" 
     Header set Cache-Control "public, must-revalidate, proxy-revalidate" 
     Header set X-Powered-By "W3 Total Cache/0.9.2.8" 
    </IfModule> 
</FilesMatch> 
<FilesMatch "\.(asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip|ASF|ASX|WAX|WMV|WMX|AVI|BMP|CLASS|DIVX|DOC|DOCX|EOT|EXE|GIF|GZ|GZIP|ICO|JPG|JPEG|JPE|JSON|MDB|MID|MIDI|MOV|QT|MP3|M4A|MP4|M4V|MPEG|MPG|MPE|MPP|OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|PNG|POT|PPS|PPT|PPTX|RA|RAM|SVG|SVGZ|SWF|TAR|TIF|TIFF|TTF|TTC|WAV|WMA|WRI|XLA|XLS|XLSX|XLT|XLW|ZIP)$"> 
    FileETag MTime Size 
    <IfModule mod_headers.c> 
     Header set Pragma "public" 
     Header set Cache-Control "public, must-revalidate, proxy-revalidate" 
     Header set X-Powered-By "W3 Total Cache/0.9.2.8" 
    </IfModule> 
</FilesMatch> 
# END W3TC Browser Cache 




# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

试图增加

的RewriteCond%{ HTTP_HOST}!^ img.mydomain.com [NC]

仍然被重定向到www.img.mydomain.com/wp-content/uploads/

+0

在这里发布你的.htaccess – Termos

回答

1

添加一些条件,标准的WP规则集这一切都让通常是必要的。在在问题的文件结束当前块,这将是这样的:

# BEGIN WordPress 
... 
RewriteRule ^index\.php$ - [L] 

# Add next lines: 
RewriteCond %{HTTP_HOST} !^img\.mydomain\.com [NC] 
RewriteCond %{REQUEST_URI} !/wp-content/uploads/ [NC] 
... 
# END WordPress 

在这种情况下,有在文件的最前面的几个规则,在# BEGIN W3TC CDN评论之前,可能也适用于请求,因为只有其中一些人确认它是http://www.mydomain.com,考虑到条件仅适用于下一条规则。

所以我觉得在这里至少需要另一个排除:

# Add next line: 
RewriteCond %{HTTP_HOST} !^img\.mydomain\.com [NC] 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

也许是必要的# BEGIN W3TC CDN评论之前在同一个2线其他规则补充说,尽管。我不知道,但这是一般的想法。