wordpress - 用于 Wordpress 和独立文件夹的 HTTPS 重定向

标签 wordpress .htaccess ssl mod-rewrite https

我对 https 重定向问题感到抓狂。

我刚刚在我的小网站上切换到 https https://handletteringlernen.de . 我通过将 Wordpress 的基本 URL 和主页 URL 更改为 https 来做到这一点。之后我更改了所有 URL,现在一切正常。我没有向 .htaccess 添加任何内容。

现在我有一个文件夹,用户可以在其中使用一个小工具:http://handletteringlernen.de/generator/ 此文件夹不是 wordpress 安装的一部分,因此没有重定向到 https。

当我添加

RewriteEngine 开启 RewriteCond %{HTTPS} 关闭 重写规则 ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

到我的根 .htaccess 我有很多重定向。当我在那个特殊文件夹 (/generator/) 中放置一个额外的 .htaccess 时,它也不起作用。

执行从/generator/到 https://handletteringlernen.de/generator/ 的特定 301 重定向没有意义(无休止的重定向)。

我被卡住了 - 有什么方法可以做到这一点?让 wordpress 和其他文件夹被迫使用 https?!没有收到“太多重定向”警告。

编辑: 我的根 .htaccess 现在看起来像这样:

`#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

RewriteEngine On
Redirect 301 /the-ultimate-handlettering-alphabet/ 
https://handletteringlernen.de/das-ultimative-handlettering-alphabet/
RewriteCond %{REQUEST_URI} !^\/generator(\/.*)?$

# Deflate Compression by FileType
<IfModule mod_deflate.c>
    AddType image/svg+xml .svg
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/atom_xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-shockwave-flash
</IfModule>

# Ablaufzeiten festlegen
<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 5 minutes"
    ExpiresByType image/ico "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    ExpiresByType font/ttf "access plus 1 month"
    ExpiresByType font/otf "access plus 1 month"
    ExpiresByType font/x-woff "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
    ExpiresByType text/html "access plus 4 hours"
    ExpiresByType text/htm "access plus 4 hours"
    ExpiresByType text/javascript "access plus 7 days"
    ExpiresByType text/css "access plus 7 days"
    ExpiresByType text/xml "access plus 7 days"
    ExpiresByType application/xml "access plus 0 seconds"
    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>

# Protect wp-login.php
<Files wp-login.php>
  AuthName "Protected Admin-Area"
  AuthType Basic
  AuthUserFile /var/www/web203/html/handletteringlernen/.htpasswd
  Require valid-user
</Files>`

我的托管商告诉我他们正在使用某种 SSL 代理。也许这会导致问题?!

最佳答案

这是您可以放在/generator 文件夹中的 .htaccess 的内容:

RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} ^/?generator(/.*)?$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/generator%1 [R=301,L]

您可能需要将 RewriteCond %{HTTPS} !=on [NC] 替换为

RewriteCond %{HTTP:X-Forwarded-SSL} !=on [NC]

如果它不起作用,您的 apache 服务器可能有一些其他配置问题。我在装有 Apache 2.4.27 的 Ubuntu 16.04.03 服务器上测试了这个积极的结果。

编辑:
由于 SSL-PROXY 服务器不知道任何关于 SSL 的事情,但也许我们得到了原始的请求模式。所以在 RewriteCond %{HTTPS} !=on [NC] 尝试 RewriteCond %{REQUEST_SCHEME} !=https [NC]

关于wordpress - 用于 Wordpress 和独立文件夹的 HTTPS 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430290/

相关文章:

php - 使用 htaccess 文件删除文件名后的正斜杠并重定向到 404 页面

c# - 带有 Windows 身份验证和 SSL 的 WCF

php - 根据季节/时间为 body 添加类(class)

php - 浏览器同步 - PHP 和 htaccess?

php - 超链接在 PHP 中自动生成图像

php - htaccess 多 URL 变量干净的 URL

javascript - node.js 上的客户端 ssl 授权

cookies - SSL 和 cookie 是如何工作的?

php - 普通网站的 Wordpress 主题

jquery - 如何通过 Ajax 访问嵌套的 JSON 对象?