如何使用PHP/Apache实现301重定向?
当用户通过如何使用PHP/Apache实现301重定向?,php,apache,http-status-code-301,Php,Apache,Http Status Code 301,当用户通过www.domain.name进行访问时,在Apache中重定向到domain.name,您可以在配置文件中添加重定向行。在php中,回复时使用状态代码301和位置:header RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.domain\.name$ [NC] RewriteRule (.*) http://domain.name/$1 [R=301,QSA,L] 但是,重定向需要额外的网络往返。您确定不想只使用ServerAlia
www.domain.name
进行访问时,在Apache中重定向到domain.name
,您可以在配置文件中添加重定向行。在php中,回复时使用状态代码301和位置:header
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.name$ [NC]
RewriteRule (.*) http://domain.name/$1 [R=301,QSA,L]
但是,重定向需要额外的网络往返。您确定不想只使用ServerAlias行,以便无论他们是否使用www访问,都能提供相同的内容吗?将其放入网站根目录中的
.htaccess
文件中:
RewriteEngine On
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^domain\.name
RewriteRule (.*) http://domain.name/$1 [R=301,L,QSA]
这就是他们所做的,为了:
HTTP\u主机
www
或任何其他子域的名称开头,则允许重写继续。这可以防止无休止地重定向回自身(.*)
之后的所有内容,包括查询字符串QSA
,并将R=301
重定向到正确的域。如果找到匹配项,则L
只表示这是文件中的最后一个命令这需要修改。仅使用重定向(或RedirectMatch)可以使用更常用的启用mod_alias.Is
%{HTTP_HOST}来完成代码>无用?不,我相信它允许您通过IP地址访问站点,而无需重定向。我刚刚测试过,当您通过IP访问时,HTTP\U主机将是IP。因此%{HTTP\U主机}。
确实是无用的。