Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess重定向301:www到非www不工作_Apache_.htaccess_Mod Rewrite_Joomla_Url Rewriting - Fatal编程技术网

Apache htaccess重定向301:www到非www不工作

Apache htaccess重定向301:www到非www不工作,apache,.htaccess,mod-rewrite,joomla,url-rewriting,Apache,.htaccess,Mod Rewrite,Joomla,Url Rewriting,我正试图将joomla-site从www重定向到非www。因此我更改了.htaccess文件 我没有更改.htaccess的经验。因此,我尝试了以下解决方案: #@package Joomla #@copyright版权所有(C)2005-2018开源事宜。版权所有。 #@license GNU通用公共许可证版本2或更高版本;请参阅LICENSE.txt ## ## #如果您选择使用此文件,请完整阅读此文件! # #“选项+FollowSymLinks”行可能会导致某些服务器配置出现问题。 #

我正试图将joomla-site从www重定向到非www。因此我更改了.htaccess文件

我没有更改.htaccess的经验。因此,我尝试了以下解决方案:

#@package Joomla
#@copyright版权所有(C)2005-2018开源事宜。版权所有。
#@license GNU通用公共许可证版本2或更高版本;请参阅LICENSE.txt
##
##
#如果您选择使用此文件,请完整阅读此文件!
#
#“选项+FollowSymLinks”行可能会导致某些服务器配置出现问题。
#使用mod_rewrite时需要它,但可能已由用户设置
#以不允许在此.htaccess文件中更改的方式更改服务器管理员。
#如果使用它导致您的站点产生错误,请将其注释掉(将#添加到
#行的开头),在浏览器中重新加载站点并测试sef URL。如果
#它们可以工作,然后由服务器管理员设置,您不需要
#把它放在这里。
##
##没有目录列表
IndexIgnore*
##如果导致错误,可以注释掉,请参见上面的注释。
选项+FollowSymlinks
选项-索引
##Mod_正在使用中重写。
重新启动发动机
##开始-重写规则以阻止一些常见的漏洞攻击。
#如果您的网站出现问题,请对列出的操作进行注释
#在下面的行的开头添加一个#。
#这将试图阻止Joomla上最常见的“尝试”攻击!
#
#阻止任何试图在URL内对数据进行base64_编码的脚本。
RewriteCond%{QUERY\u STRING}base64\u encode[^(]*\([^)]*\)[或]
#阻止URL中包含标记的任何脚本。
重写cond%{QUERY_STRING}(|%3E)[NC,或]
#阻止任何试图通过URL设置PHP全局变量的脚本。
重写条件%{QUERY\u STRING}全局(|\[|\%[0-9A-Z]{0,2})[或]
#阻止任何试图通过URL修改_请求变量的脚本。
重写条件%{QUERY\u STRING}\u请求(|\[|\%[0-9A-Z]{0,2})
#返回403禁止标题并显示根主页的内容
重写规则。*index.php[F]
#
##结束-重写规则以阻止一些常见的漏洞攻击。
##开始-自定义重定向
#
#如果需要重定向某些页面,或将规范非www设置为
#www重定向(反之亦然),将代码放在这里
#重定向使用正确的重写规则语法和[R=301,L]标志。
#
重写cond%{HTTP_HOST}^www\.katrin \-tilsner\.de$[NC]
重写规则^(.*)$http://katrin-tilsner.de/$1[R=301,L]
##结束-自定义重定向
##
#如果您的Web服务器的URL
#与物理文件路径没有直接关系。
#更新您的Joomla!目录(仅适用于根目录)。
##
#重写基/
##开始-Joomla!核心SEF部分。
#
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
#
#如果请求的路径和文件不是/index.php,则
#尚未在内部重写为index.php脚本
重写cond%{REQUEST_URI}!^/index\.php
#请求的路径和文件与物理文件不直接匹配
重写cond%{REQUEST_FILENAME}!-f
#请求的路径和文件与物理文件夹不直接匹配
重写cond%{REQUEST_FILENAME}!-d
#在内部将请求重写为index.php脚本
重写规则。*index.php[L]
#
##结束-Joomla!核心SEF部分。
遗憾的是,它仍然不起作用。

尝试更换

RewriteCond %{HTTP_HOST} ^www\.katrin\-tilsner\.de$ [NC]
RewriteRule ^(.*)$ http://katrin-tilsner.de/$1 [R=301,L]


这是个人在最近的一个项目中使用的,而且更通用。

所以问题解决了…我不知道我需要2个.htaccess文件。一个是www页面,一个是非www页面。我将htaccess文件从非www页面上传到了www页面,现在它工作了


@保罗·埃文斯:你的代码运行得很好。

我把代码改成了这个,但它仍然不工作:
##www->no www RewriteCond%{HTTP\u HOST}^www\.RewriteRule^HTTP://%{HTTP\u HOST}%{REQUEST\u URI}[R=301,L,NE,QSA]
我认为rewritecond不起作用,因为只需输入代码就可以工作,并将我重定向到www页面。哎呀,我把你的问题看得太快了。我以为它是从非www到www的。经过一点搜索,我发现:
rewritecond%{HTTP\u HOST}^www\(.*)$[NC]RewriteRule^(.*)$HTTP://%1/$1[R=301,L]
RewriteCond %{HTTP_HOST} ^www\.katrin\-tilsner\.de$ [NC]
RewriteRule ^(.*)$ http://katrin-tilsner.de/$1 [R=301,L]
## no-www -> www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE,QSA]