【问题标题】:My .htaccess redirect is no longer working我的 .htaccess 重定向不再起作用
【发布时间】:2016-10-21 07:08:04
【问题描述】:

我的 .htaccess 直到昨天都运行良好。令人惊讶的是,我没有对网站进行任何更改。

.htaccess 行将 webite.com 重定向到 https://www.website.com。 现在,它会将 website.com 重定向到 https://website.com

我尝试修改它,但它没有改变。

在下面找到我的 .htaccess:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php?\ HTTP/
RewriteRule ^(([^/]+/)*)index\.php?$ http://www.website.com/$1 [R=301,L]

RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^website\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.website\.com$
RewriteRule ^(.*)$ https://www.website.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    如果您在共享主机环境中;另一个用户可能已经引入了另一个覆盖您的 .htaccess 文件的 .htaccess 文件。可以在此处找到 .htaccess 文件如何相互覆盖

    http://httpd.apache.org/docs/2.2/howto/htaccess.html

    【讨论】:

    • 我在专用服务器上,这是 root 帐户。
    【解决方案2】:

    替换您当前的代码以强制使用 HTTPsWWW

    RewriteEngine On
    #Force SSL and WWW
    RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
    RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE]
    

    这将强制 WWWSSL 在所有内容上。

    【讨论】:

    • 你的代码就像一个魅力。它在我的浏览器上打开得很好,但 Pingdom 给我发了一封电子邮件,说我的网站已关闭。除了我们用于网站监控的 Pingdom 之外,其他网站显示我的网站已启动。一旦我们切换回以前的线路,它就出现在 Pingdom 上。哪些 htaccess 代码导致网站无法使用某些服务?
    • 目前我能看到导致问题的唯一行是RewriteCond %{SERVER_PORT} 80。这就是我推荐这个替代代码的原因。奇怪的是,有些网站显示您的网站正在运行,而另一些则显示为已关闭。您愿意提供您的网站 URL,以便我自己进行一些测试吗?
    猜你喜欢
    • 2012-03-20
    • 2015-03-07
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多