我有2个域名和2个服务器 example.com
和 example2.com
。例如: example.com
是我的主要域名。我将我的网站图片上传到 example2.com
我当前的图片路径http://example.com/data/photos/sample.jpg
但我的所有图片都在http://example2.com/data/photos/sample.jpg
所以我创建了htaccess 301 重定向
RewriteEngine on
RewriteBase /
RewriteRule ^data/photos/(.*)$ http://example2.com/data/photos/$1 [R=301]
但它不适合我。因为我把完整的URL称为我的所有页面。所以任何一个建议对我都很有帮助
更新了我原来的Htaccess文件
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
RewriteEngine On
RewriteBase /
RewriteRule ^data/photos/(.*)$ http://example2/data/photos/$1 [R=301]
</IfModule>
答案 0 :(得分:5)
您需要重新排序规则。你的最终htaccess应该看起来像
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(data/photos/.*)$ http://example2.com/$1 [R=301,NC,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [NE,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
答案 1 :(得分:3)
用这个改变它
RedirectMatch 301 ^/data/photo/ http://example2.com/data/photo/
为整个目录创建301。