.htaccess HTACCESS文件中的WWW重定向

.htaccess HTACCESS文件中的WWW重定向,.htaccess,.htaccess,我在上有一个React应用程序的htaccess文件。我希望它自动重写为,同时在重定向期间保留所有参数 我在GitHub()上找到了这个很棒的默认htaccess模板,我最不需要的就是让www重定向。有人知道我需要添加什么以及在文件中的什么位置来获得WWW重写吗 <ifModule mod_rewrite.c> ####################################################################### # GENERAL

我在上有一个React应用程序的htaccess文件。我希望它自动重写为,同时在重定向期间保留所有参数

我在GitHub()上找到了这个很棒的默认htaccess模板,我最不需要的就是让www重定向。有人知道我需要添加什么以及在文件中的什么位置来获得WWW重写吗

<ifModule mod_rewrite.c>


  #######################################################################
  # GENERAL                                                             #
  #######################################################################

  # Make apache follow sym links to files
  Options +FollowSymLinks
  # If somebody opens a folder, hide all files from the resulting folder list
  IndexIgnore */*


  #######################################################################
  # REWRITING                                                           #
  #######################################################################

  # Enable rewriting
  RewriteEngine On

  # If its not HTTPS
  RewriteCond %{HTTPS} off

  # Comment out the RewriteCond above, and uncomment the RewriteCond below if you're using a load balancer (e.g. CloudFlare) for SSL
  # RewriteCond %{HTTP:X-Forwarded-Proto} !https

  # Redirect to the same URL with https://, ignoring all further rules if this one is in effect
  RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R,L]

  # If we get to here, it means we are on https://

  # If the file with the specified name in the browser doesn't exist
  RewriteCond %{REQUEST_FILENAME} !-f

  # and the directory with the specified name in the browser doesn't exist
  RewriteCond %{REQUEST_FILENAME} !-d

  # and we are not opening the root already (otherwise we get a redirect loop)
  RewriteCond %{REQUEST_FILENAME} !\/$

  # Rewrite all requests to the root
  RewriteRule ^(.*) /

</ifModule>

<IfModule mod_headers.c>
  # Do not cache sw.js, required for offline-first updates.
  <FilesMatch "sw\.js$">
    Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
    Header set Pragma "no-cache"
  </FilesMatch>
</IfModule>

#######################################################################
#一般的#
#######################################################################
#使apache遵循指向文件的sym链接
选项+FollowSymLinks
#如果有人打开一个文件夹,则隐藏结果文件夹列表中的所有文件
IndexIgnore*/*
#######################################################################
#重写#
#######################################################################
#启用重写
重新启动发动机
#如果不是HTTPS
重写条件%{HTTPS}关闭
#注释掉上面的RewriteCond,如果您正在使用SSL负载平衡器(例如CloudFlare),则取消注释下面的RewriteCond
#重写cond%{HTTP:X-Forwarded-Proto}!https
#使用https://重定向到同一URL,如果此规则有效,则忽略所有其他规则
重写规则^(.*)https://%{HTTP_HOST}/$1[R,L]
#如果我们到了这里,就意味着我们在使用https://
#如果浏览器中不存在具有指定名称的文件
重写cond%{REQUEST_FILENAME}-F
#并且浏览器中具有指定名称的目录不存在
重写cond%{REQUEST_FILENAME}-D
#而且我们还没有打开根目录(否则我们会得到一个重定向循环)
重写cond%{REQUEST_FILENAME}\/$
#将所有请求重写到根目录
重写规则^(.*)/
#不要缓存脱机首次更新所需的sw.js。
标题集缓存控制“专用、无缓存、无存储、代理重新验证、无转换”
标题集Pragma“无缓存”

为了设置所需的重定向,www.example.com到example.com或反之亦然,您必须为每个名称设置一个A记录

要将用户从www重定向到普通的非www域,请插入以下配置:

在.htaccess中:

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

如果您不需要对主机名进行动态设置,那么我会在检查
%{HTTPS}off
后添加一个条件,检查主机名是否以
www.
开头,并添加
[或]
标记为前者,然后在以下规则的替换URL中对主机名进行硬编码

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*) https://searchglutenfree.com/$1 [R,L]

如果您替换了注释
#如果不是HTTPS
#和
#如果我们到了这里,这意味着我们在您的.htaccess中使用HTTPS://
,它应该可以工作。

请参阅:
https://stackoverflow.com/questions/6515081/htaccess-remove-www-from-url-directories
谢谢@hacker315,实际上,我在我的文件中的几个不同的地方插入了这段代码,但它对我不起作用。也许我遗漏了什么?如果您不需要对主机名进行动态设置,那么我会在检查
%{HTTPS}off
后添加一个条件,检查主机名是否以
www.
开头,并添加
[或]
标记为前者,然后在以下规则的替换URL中对主机名进行硬编码。谢谢@CBroe。我对htaccess非常不熟悉,所以我要找的是确切的代码。我有一个悬赏,所以若你们的答案是准确的变化,它的工作,我会奖励你们:)增加了一个答案,基本上应该这样工作。如果你在我提到的评论之后留下剩下的文字,一切都应该正常。(这里说应该,因为如果不能在实际系统上进行测试,这些事情并不总是100%正确。如果遇到任何问题,请告诉我。)
R
标志本身将导致状态代码为302的临时重定向,这对测试很有好处(否则你的浏览器会缓存重定向本身,这样当你做出更改后看不到任何效果时,你就很容易被欺骗。)如果一切正常,用
R=301
替换它,使其成为一个永久重定向。现有的重定向是什么?(整个事情现在应该是这样的,)删除了我的上一条评论。这是99%。有没有办法删除“seachlupnfree.com”并将其设置为通配符?我必须将其复制到一些网站,最好不要替换该部分。发现另一个问题…https://www.searchlupnfree.com没有正确重定向(没有空格,添加以显示不起作用的URL)我在上面htaccess文件的第24行和第36行尝试了这段代码htttps://www.searchglutenfree.com. 这个代码应该插入哪一行?如果你能告诉我它在哪一行工作,我很乐意给你赏金。