Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 htaccess重写需要一个异常_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess htaccess重写需要一个异常

.htaccess htaccess重写需要一个异常,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在为一个站点上的一个URL定义一个异常时遇到了问题,该站点除了一个子目录外,所有URL都必须是https 我目前有: ## Redirect URLs to https:// <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.example.com/$1 [R,L] </IfModule> ##将URL重定向到ht

我在为一个站点上的一个URL定义一个异常时遇到了问题,该站点除了一个子目录外,所有URL都必须是https

我目前有:

## Redirect URLs to https://
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
</IfModule>
##将URL重定向到https://
重新启动发动机
重写cond%{SERVER_PORT}80
重写规则^(.*)$https://www.example.com/$1[R,L]
但是我需要在www.example.com/forum周围定义一个异常,这样它就始终没有https://协议

我该怎么做?我试过各种各样的方法!运算符重写,但%SERVER\u端口似乎优先。是否还有另一个改写我应该考虑的问题?

< P>替换最后一行:

RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
为此:

RewriteRule !^/?forum  https://www.example.com%{REQUEST_URI} [R,L]
如果正常,则将
[R,L]
替换为
[R=301,L]
作为永久重定向

更新

根据您的评论,您希望强制任何
https
请求包含
论坛
http
中,您可以将这些规则与上述规则一起添加:

RewriteCond %{SERVER_PORT} !80
RewriteRule ^/?forum  http://www.example.com%{REQUEST_URI} [R,L]

谢谢当URL直接输入时,它似乎工作正常,停留在http上,而不是重定向到https。但是,每当点击论坛所在网站上任何位置的
相对链接时,它都希望转到https而不是http。即使有重写规则中定义的异常。有没有办法把它逼得更厉害?CMS只指向相对URL,不允许我用http定义绝对值。@rw intechra您可以以相反的方式添加新规则,我将更新答案,谢谢。我添加了这些行并刷新了浏览器好几次,但它仍然想在论坛上使用https。这只是一个临时修复,直到论坛可以安全,所以我想我只需要立即使论坛安全。清除浏览器缓存也不起作用。不过谢谢你帮我。我学到了一些新东西。