问题:
1)需要所有网址始终重定向到非www 2)domain.com需要自动重定向到sub.domain.com
根据这里的其他文章,我尝试过:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(sub\.domain\.com)$ [NC]
RewriteRule ^ http:://%1%{REQUEST_URI} [R=301,L]
[必须为此添加":"
以便发布]
哪个“有效”,但随后是我网站404上的所有链接。
你能指出我做错了吗?
答案 0 :(得分:0)
试试这段代码:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^(.*)$ http://sub.domain.com/$1 [R=301,L]
答案 1 :(得分:0)
在7月26日提供的评论中,规则
RewriteRule ^(.*)\.html$ $1.php [nc]
用于将对html文件的所有请求重写为对php文件的请求。这通常是为SEO做的,在php主要用于减少代码重复的情况下,使页面显示为静态html而不是动态php。
在这些情况下,服务器上的所有页面文件通常只以php格式存在,而不是html格式。因此,如果没有此规则,所有.html文件的链接将作为.html文件的服务器请求保留,这将导致许多404.
我建议您在声明结尾处的原始问题中将此规则插入到.htaccess块中。他们应该一起玩得很好。完整性的结果:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(sub\.domain\.com)$
RewriteRule ^http://%1%{REQUEST_URI} [R=301]
RewriteRule ^(.*)\.html$ $1.php [NC]
*我的错误,标志[NC]和[OR]对于RewriteCond语句肯定有效。