当前位置: 首页 > 知识库问答 >
问题:

SEO友好的HTACCESS 301将非www重定向到www PLUS。php到非。php PLUS http到htps[重复]

姜煌
2023-03-14

我在PHP上有一个自定义的非CMS站点。

我现在的生活方式。htaccess设置允许我使用不带“.php”部分的URL,并将所有非www请求重定向到www:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA] 

现在我们切换到HTTPS。

如何在中从http://https://获得适当的SEO友好重定向。htaccess?

我试着用一根线代替第三根线

RewriteRule (.*) https://www.example.com/$1 [R=301,L]

但它不起作用...

另外,有没有办法为. php请求设置301重定向以重定向到non-. php变体?虽然它看起来像是指重定向到相同的确切页面,不确定它是否会是SEO安全做它,或者它甚至会导致重定向循环?

共有1个答案

何骞尧
2023-03-14

您可以使用以下htaccess规则(只需在第二个ReWriteCond中将form\. com替换为你的域名\. com

RewriteEngine On


#301 redirect from http to https + non-www to www
RewriteCond ℅{HTTPS} off [OR]
RewriteCond ℅{HTTP_HOST} ^example\.com$ [NC]
RewriteCond ℅{HTTP_HOST} (?:www\.)?(.+)$
RewriteRule ^ https://www.℅1℅{REQUEST_URI} [NE,L,R]

#remove .php extension
#redirect to remove .php from URLs
RewriteCond ℅{THE_REQUEST} /(.+)\.php [NC]
RewriteRule ^ /℅1 [L,R=301]
#handle extension less php URLs
RewriteCond ℅{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/?$ /$1.php [L]
 类似资料:
  • 问题内容: 我想使用PHP将所有www.domain.com请求重定向到domain.com,基本上是: 但是我确实想像SO中那样维护请求的URL,例如: 应该重定向到: 我不想依靠解决方案,并且我不确定要使用哪种变体来实现这一目标。同样,保留HTTPS协议将是一个加号。 我应该怎么做? 问题答案: 将用户重定向到完全相同的页面,www。完整。 因此,要摆脱www。,我们只需替换一行: 那应该起作

  • 我有这个在我的. htaccess文件: 但是每当我访问根目录上的文件时,就像它将重定向到。 我如何纠正它,以便它将正确地重定向到?

  • 好吧,我恨死它了。我已经想解决这个问题几个小时了,但我还是不知道是不是错了,或者我错过了什么。 我有这个代码: 它会将http请求重定向到https,但每当我键入domain.com时,它都会重定向到https://domain.com,并抛出一个ssl错误: 这可能不是你要找的网站!您试图访问域。但实际上您到达了一个服务器,该服务器的名称为www.domain.com。这可能是由于服务器配置错误

  • 我正在尝试使用重定向主网站URL。从www到非www的htaccess,但使用下面的代码片段也会影响我的子域博客。我的域名。通用域名格式。如果我进入子域。我的域名。com我被直接重定向到mydomain。通用域名格式 如何从规则中排除子域? Litespeed web服务器

  • 问题内容: 是否有可能以某种方式将www重定向到node.js中的非www URL?由于节点Web服务器中没有htaccess,我很好奇该怎么做。 问题答案: 你在用快递吧?如果是这样,则可以使所有GET请求都通过的路由处理程序,检查它们是否为“ www” URL,并在适当时重定向到适当的非www URL。

  • 我知道这里有很多文章谈论几乎相同的问题。然而我还不能解决它。 我们有一个正常的wordpress域 domain.com 我有两个虚拟主机,一个到http,另一个到https,从http虚拟主机我做一个重定向来强制https总是 那么我的虚拟主机是这样的 问题: 每次我进入导航器时,就像 https://www.domain.com navigator(Google等)抱怨它,因为证书(chepe