【问题标题】:Htaccess www to non-www but keep the url intactHtaccess www 到非 www 但保持 url 完整
【发布时间】:2021-02-11 00:11:56
【问题描述】:

我认为这很简单,但我就是想不通。

我有一个类似https://www.example.com 的域

我想改写成https://example.com

这行得通。但我也在重写其他网址,如https://www.example.com/privacy

如果我也尝试重写这些,用户总是被重定向到https://example.com/privacy.php

如何防止我的服务器显示实际文件名而不是其重写的 url?

我的代码如下所示:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]

RewriteRule ^checkout checkout.php [L] 
RewriteRule ^imprint imprint.php [L] 
RewriteRule ^privacy privacy.php [L] 
RewriteRule ^terms terms.php [L] 
RewriteRule ^allergy allergy.php [L] 
RewriteRule ^nutrition nutrition.php [L] 

RewriteRule ^order/([A-Z]*)?$ confirmation.php?lang=&id=$1 [L,QSA]

感谢任何帮助。

问候

【问题讨论】:

  • 好的,所以你的意思是 url example.com/privacy.php 在浏览器中显示为重定向?因为我看不到任何可以做到这一点的规则,请确认一次。
  • 嘿,是的。该文件名为privacy.php。但在内部,我没有链接到privacy.php,而是/privacy。假设您导航到 www.example.com/privacy:浏览器中的 url 更改为 example.com/privacy.php 而不是 example.com/privacy。希望这能让情况清楚

标签: .htaccess url mod-rewrite


【解决方案1】:

这样吧:

Options -MultiViews
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]

RewriteRule ^(checkout|imprint|privacy|terms|allergy|nutrition)/?$ $1.php [L] 

RewriteRule ^order/([a-z]+)/?$ confirmation.php?lang=&id=$1 [L,QSA,NC]

确保在清除浏览器缓存后进行测试。问题似乎是由于您的模式没有使用结束锚。

我已将您的多个类似规则合并为一个规则。

【讨论】:

  • 嘿,谢谢你的回答。但是,我仍然被重定向到 .php 。它正在删除 www。但总是在末尾附加 .php (显示文件名而不是路径)。我清除了缓存,但仍然没有运气。然而,它似乎适用于订单页面。所以 www.example.com/order/SHDJS 成功重定向到 example.com/order/SHDJS
  • 检查更新的答案。您可能需要添加 Options -MultiViews 并在新浏览器中尝试或完全删除旧缓存。
  • 谢谢你,成功了;)祝你有美好的一天!
  • 好吧,那还为时过早 :D 问题是它还会删除图像的结尾,从而使它们消失。有什么办法让它们不受影响?
  • it also removes the endings of images - 我建议的规则中没有发生这种情况。你可以看到那里没有这样的规则。您能否举例说明您的图片 URL 以及您在获取图片时遇到的确切错误?
猜你喜欢
  • 2013-04-08
  • 2017-06-20
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多