【问题标题】:htaccess why is site redirecting to //htaccess 为什么网站重定向到 //
【发布时间】:2016-09-29 13:02:18
【问题描述】:

在我的 htaccess 中,我将所有非 https 重定向到 https。 它可以工作,但它还添加了一个额外的“/”,所以网址是 'https://www.[MY SITE URL].co.uk//'

这是为什么?老实说,我真的不知道我的 htaccess 中的所有这些在做什么,它是从谷歌搜索答案复制到“将所有请求重定向到 https”

我的 htaccess:

Options -MultiViews
RewriteEngine On    # Turn on the rewriting engine

RewriteBase /

#RewriteCond %{HTTP_HOST} ^(www\.)?jobooz\.com  [NC]
#RewriteRule ^(.*)$  https://www.jobooz.co.uk/$1     [R=301,L,NC]


RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1

RewriteRule    ^/?$    /php/index.php    [NC,L]    # Home page

我还注意到我添加到 URL 中的任何更深层次的 URL,例如“/search-jobs/jobs-near-me”,然后也被复制到“/search-jobs/jobs-near-me/search-” jobs/jobs-near-me' 重定向到 https 时。

如果我直接转到 https 版本,所有网址都可以正常工作。

任何帮助表示赞赏,谢谢。

【问题讨论】:

    标签: html .htaccess


    【解决方案1】:

    以下重写规则有问题:

    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI}/$1 [R=301,L]
    

    您在重写的 URL 中看到重复片段的要点是 (.*) 匹配所有内容,并且已经包含主机和 URI。相反,您可以尝试将端口 80 上的任何传入请求重定向到 HTTPS。

    RewriteCond     %{SERVER_PORT} ^80$
    RewriteRule     ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    

    【讨论】:

    • 谢谢!现在排序
    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 2016-10-26
    相关资源
    最近更新 更多