不带www的URL直接重定向到提交页面-多字按下安装

时间:2018-06-25 作者:Arthur Camberlein

这是一个与Wordpress相关的问题,因为该问题来自多安装Wordpress。但它也与服务器端相关,具有。htaccess

My problem is : 当用户在没有WWW的情况下键入我的URL时,它会让他/她进入一个提交URL,邀请他/她登录。从…起https://mister-tea.fr 到这样的URLhttps://www.fixie-lille.fr/wp-signup.php?new=mister-tea.fr 而不是https://www.mister-tea.fr

我真的不想要它,我只想用户被重定向到同一个域,和WWW的同一个URL。

我的主要域名是https://www.fixie-lille.fr (Fr网站)

该规则可能会起作用:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^fixie-lille.fr$
RewriteRule (.*) https://www.fixie-lille.fr/$1 [R=301,L]
</IfModule>
但它破坏了其他网站。

我试着在中使用一些规则。htaccess,但似乎不起作用。我的所有网站都使用WWW域,没有WWW域就无法访问。

除此之外,我使用此规则在http和https之间重定向用户

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
以下规则是否会产生严重干扰?

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\\.php)$ $2 [L]
RewriteRule . index.php [L]
除此之外,只要在一次安装中安装几个Wordpress,一切都很好。

提前谢谢,我随时可以回答更多问题

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

由于您有多个域,因此无法将该域包含在重定向本身中以创建一个适用于所有域的通用重定向(我假设您正在尝试这样做)。您还需要确保指令的顺序正确。

因为您的所有站点都使用www 子域,然后尝试以下操作。但是,这假设您没有任何其他子域。

RewriteEngine On

# non-www to www (and HTTPS)
RewriteCond %{HTTP_HOST} !^www\\.
RewriteRule (.*) https://www.%{HTTP_HOST}/$1 [R=301,L]

# HTTP to HTTPS 
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# WordPress directives follow...
非www到www重定向现在测试请求的主机是否未启动www. 如果没有,只需预先准备好。

无需重复RewriteEngine 指令,无需<IfModule mod_rewrite.c> 自定义指令的包装器。

关于HTTP到HTTPS重定向,不需要捕获RewriteRule 模式(如果未在替换中使用)。即使用时%{REQUEST_URI} 而不是反向引用。

像往常一样,在测试之前清除浏览器缓存。

结束