开发者

htaccess: how to force www in a generic way

RE: .htaccess - how to force "www." in a generic way?

I asked this question before, and got this answer:

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

It works, but now I am seeing 301 Moved Permanently in the response headers. I want to eliminate the 301s. Is the problem the 2nd rewrite condition? Should it be something like "does not start with 'www.' followed by the host name"?

By the way, I want this solution to work for any server (meaning, I don't want to hard code my domain name).

Suggestions?

UPDATE:

I just realized that the above is not working correctly. If I have the following:

http://images.domain.com

I don't want that to change to:

http://www.images.domain.com

I don't want th开发者_如何转开发is affecting sub-domains. I only want it to affect missing www.


Redirecting to a different domain is by definition not possible without some header redirect. If you want the URL in the user's browser to change, you have to force a new request. There is no way around that.

You will have to take your pick - the 301, 302 and 303 status codes being the most straight forward choices.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜