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
Regex 将url重写为非www多个站点_Regex_.htaccess_Mod Rewrite - Fatal编程技术网

Regex 将url重写为非www多个站点

Regex 将url重写为非www多个站点,regex,.htaccess,mod-rewrite,Regex,.htaccess,Mod Rewrite,我有一些网站,他们运行相同的文件,但不同的模板,我的目标是强制使用所有的www或非www域 这是我的代码: RewriteCond %{HTTPS} (on)? RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC] RewriteCond %{REQUEST_URI} (.+) RewriteCond %{HTTP:Host} ^[^.]+\.[a-z]{2,5}$ [NC] RewriteRule .? http(?%1s)://www.%2%3 [R=3

我有一些网站,他们运行相同的文件,但不同的模板,我的目标是强制使用所有的www或非www域

这是我的代码:

RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteCond %{HTTP:Host} ^[^.]+\.[a-z]{2,5}$ [NC]
RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]
从stackoverflow的其他问题中获取:)

但是如果我使用www域名一切都好,如果没有得到这个重定向


http://domain.de/www/htdocs/user/_production/http%28?s%29://www.

为什么不这样简化规则:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

为什么不简化您的规则如下:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

获取服务器错误。。。不清楚这是什么问题,以阻止重写cond%{HTTPS}=在RewriteCond%{HTTP_HOST}上^www\。[NC]RewriteRule^{HTTP_HOST}%{REQUEST_URI}[R=301,L]RewriteCond%{HTTPS}=在RewriteCond%{HTTP_HOST}上^www\。[NC]RewriteRule^{HTTP\u HOST}%{REQUEST\u URI}[R=301,L]实际上我的错,在
%{REQUEST\u URI}
之前有一个空格字符。我编辑了它,请再试一次。太好了,谢谢你,我怎样才能排除一些要重定向的子域?比如admin.domain.com,不客气。您可以像这样添加一个RewriteCond行:
RewriteCond%{HTTP\u HOST}^admin\.domain\.com$[NC]
避免重定向到
admin.domain.com
获取服务器错误。。。不清楚这是什么问题,以阻止重写cond%{HTTPS}=在RewriteCond%{HTTP_HOST}上^www\。[NC]RewriteRule^{HTTP_HOST}%{REQUEST_URI}[R=301,L]RewriteCond%{HTTPS}=在RewriteCond%{HTTP_HOST}上^www\。[NC]RewriteRule^{HTTP\u HOST}%{REQUEST\u URI}[R=301,L]实际上我的错,在
%{REQUEST\u URI}
之前有一个空格字符。我编辑了它,请再试一次。太好了,谢谢你,我怎样才能排除一些要重定向的子域?比如admin.domain.com,不客气。您可以像这样添加一个RewriteCond行:
RewriteCond%{HTTP\u HOST}^admin\.domain\.com$[NC]
避免重定向到
admin.domain.com