繁体   English   中英

在WordPress中将.htaccess用于https和www到非www

[英].htaccess in Wordpress for https and www to non-www

有谁知道,为什么我从www重定向到非www可能不起作用?

基本信息:Strato Hoster,Worpress域重定向适用于:bitcoinmesse.com子域重定向不起作用:shop.bitcoinmesse.com

当前的.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
</IfModule>


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

通过网络尝试了许多不同的事物。 他们大多数导致:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

其他人只是说我有一个无限循环:

再次导致其他错误,例如请求子文件夹likte / shop /以及无法获取404或https:// shop /

但是他们都没有将www重定向到非www。 用www输入地址总是会导致:在Firefox中找不到服务器或在Chrome中无法访问网站。

有人有什么想法吗?

编辑:同时似乎有效果,并且www.shop.bitcoinmesse.com可以访问并转发到https://shop.bitcoinmesse.com

不幸的是,无法访问类似www.shop.bitcoinmesse.com/shop/的子页面。

尝试

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
</IfModule>

基本上现在反向引用$1没有指向任何东西。 我在RewriteRule添加了(.*) ,因此$1实际上是对正则表达式中捕获组的引用。 您也可以尝试将$1更改$1 $0 ,由于$0是完全匹配的URL,因此它也可以执行相同的操作。

我还更新了RewriteCond以确保主机头在www.后面有内容www. 这是次要的更改,因为服务器无论如何都不应该监听任何主机头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM