Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
.htaccess 通过ht访问文件重定向工作不正常_.htaccess_Redirect - Fatal编程技术网

.htaccess 通过ht访问文件重定向工作不正常

.htaccess 通过ht访问文件重定向工作不正常,.htaccess,redirect,.htaccess,Redirect,以下是场景: 有一个名为“example.com”的网站和一个名为“mobile”的文件夹,用于通过手机或标签访问网站 如果用户在浏览器中仅键入“example.com”,则应将其重定向到正在按照.htaccess中的以下代码工作的位置: RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L] 或者,如果用户正在从移动设备访问url,则应将其重定向到 现在

以下是场景:

有一个名为“example.com”的网站和一个名为“mobile”的文件夹,用于通过手机或标签访问网站

如果用户在浏览器中仅键入“example.com”,则应将其重定向到正在按照.htaccess中的以下代码工作的位置:

RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L]
或者,如果用户正在从移动设备访问url,则应将其重定向到

现在,每当我从手机访问url时 它将浏览器重定向到,但再次按照.htaccess中的代码,它考虑url“example.com”的这一特定部分,并将浏览器重定向回,这样最终导致无限循环生成错误:

“获取页面超出了最多10个重定向。”

我尝试在.htaccess文件中放入类似的内容,以便在前缀为“mobile”的情况下不重定向到,但它不起作用

  RewriteCond %{HTTP_HOST} ^example\.com$
  RewriteRule ^mobile/ - [L]
  RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L]
请告知

这就是.htaccess文件的构造方式

RewriteEngine on

RewriteRule ^mobile - [L]

RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com" [R=301,L]

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{www.example.com}/$1 [R,L]

##DISABLE VIEWING DIRECTORIES##
Options -Indexes
##DISABLE VIEWING DIRECTORIES##

##DISABLE VIEWING DIRECTORIES FILES##
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC]
RewriteRule .*\.(png|gif)$ - [F,NC]
##DISABLE VIEWING DIRECTORIES FILES##

##DISABLE VIEWING admin DIRECTORY FILES##
RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com [NC]
RewriteCond %{HTTP_REFERER} !^https://(www\.)?example.com/.*$ [NC]
RewriteRule ^admin/.+\.php$ - [F,L]
##DISABLE VIEWING admin DIRECTORY FILES##
header.php中的重定向代码

<script type="text/javascript">
if (screen.width <= 699) {
document.location = "https://mobile.example.com";
}
</script>


如果(screen.width您没有正确使用RewriteCond。如果您想在uri为/mobile/时跳过url重写,并将example.com重定向到,您可以使用以下方法

#Skip url rewriting if requested uri is /mobile
RewriteRule ^mobile - [L]
#redirect example.com/ to http://www.example.com/
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^/?$ https://www.example.com/ [L,R]

/不是mod rewrite中的特殊字符,您不需要转义它。

RewriteRule^mobile-[L]RewriteCond%{HTTP\u HOST}^example\.com$RewriteRule^/?$“https\:\/\/www\.example\.com”R=301,L]但它不工作重定向仍然存在,我怎么了doing@team清除浏览器缓存所有操作都已完成…但仍存在相同问题..我已编辑了我的问题并添加了完整的.htaccess文件,因为我不确定在哪里我所做的是错误的吗?有进一步的建议吗?您编辑的htaccess在我的服务器上按预期工作。您能清楚地解释您的问题吗?