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将非www页面重定向到www页面(单个子文件夹除外)_Apache_.htaccess_Redirect - Fatal编程技术网

Apache 如何使用.htaccess将非www页面重定向到www页面(单个子文件夹除外)

Apache 如何使用.htaccess将非www页面重定向到www页面(单个子文件夹除外),apache,.htaccess,redirect,Apache,.htaccess,Redirect,我正在尝试将指向我的站点的所有非www.url重定向到www.url-但是,我的站点上有一个子文件夹我不想更改。我一直在使用的代码是: Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^domain.com [nc] rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 有没有办法告诉这段代码忽略domain.com/specialsubfolder 非常

我正在尝试将指向我的站点的所有非www.url重定向到www.url-但是,我的站点上有一个子文件夹我不想更改。我一直在使用的代码是:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
有没有办法告诉这段代码忽略
domain.com/specialsubfolder

非常感谢,已尝试搜索此项,但无法完全找到我要查找的内容。

常见的方法(易于阅读和理解)是,如果URL以
/specialsubfolder
开头,则添加另一个条件以忽略此规则:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteCond %{REQUEST_URI} !^/specialsubfolder
RewriteRule .* http://www.domain.com%{REQUEST_URI} [R=301,L]
或者,将此类条件添加到匹配模式中(更难读取,但速度稍快):


p.S.如果需要区分大小写,您可以添加
[NC]
标志。

非常感谢-这个答案非常完美。
Options +FollowSymlinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain\.com [NC]
RewriteRule ^(?!specialsubfolder).* http://www.domain.com%{REQUEST_URI} [R=301,L]