gpt4 book ai didi

.htaccess 问题与 https 重定向

转载 作者:行者123 更新时间:2023-12-02 04:32:24 27 4
gpt4 key购买 nike

我刚刚将我的网站从 HTTP 升级到 HTTPS,我的 .htaccess 之前运行良好,现在却出现异常。我有以下内容:

  • 删除尾部斜杠
  • 删除 php 扩展

...加上其他,但我想这些是有问题的。

我在示例页面上得到的行为是:

我是否遗漏了一些明显的东西?代码是:

Order Deny,Allow

DirectoryIndex index.php

# Secure text files
<Files ~ "\.txt$">
Order allow,deny
Deny from all
</Files>

# Redirect non-www to www:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

ErrorDocument 404 /404.php

RewriteEngine On

# All calls go to SSL
RewriteEngine On
RewriteCond %{ENV:HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ https://www.navanter.com/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ https://www.navanter.com/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]

最佳答案

对于这个特定问题,用于删除尾随 /.php 扩展名的重写规则不需要替换中的完整 URL。您还可以考虑重新排序其中一些规则。

更新示例:

Require all granted

DirectoryIndex index.php

# Secure text files
<Files ~ "\.txt$">
Require all denied
</Files>

ErrorDocument 404 /404.php

RewriteEngine On

# Redirect HTTP to HTTPS and non-www to www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,R=301,L]

# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [NC,L]

这里有几点需要注意:

  • 以上指令已修改为使用更新的 apache 2.4 语法
  • RewriteEngine on 指令应该在其他重写规则之前
  • HTTP -> HTTPSnon-www -> www 重定向逻辑可以在单个操作中完成
  • PHP 扩展剥离和随后的重新映射应该在没有完整 URL 的情况下完成,以避免您观察到的重复行为。最后一点应该可以解决问题。

如果您需要有关此处使用的某些语法的更多信息,可以查看 mod_rewrite文档。

关于.htaccess 问题与 https 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47453092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com