我对https重定向问题感到疯狂。
我刚刚在我的小网站https://handletteringlernen.de上切换到https。 我这样做是通过将Wordpress的基本和主页URL更改为https。之后我改变了所有的URL,现在一切正常。我没有在.htaccess中添加任何内容。
现在我有一个用户可以使用小工具的文件夹:http://handletteringlernen.de/generator/ 此文件夹不是wordpress安装的一部分,因此没有重定向到https。
当我添加
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ 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代理。也许这会导致问题?!
答案 0 :(得分:1)
这是您可以放在/ 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的事情,但也许我们得到了原始的Request Schema。因此RewriteCond %{HTTPS} !=on [NC]
尝试RewriteCond %{REQUEST_SCHEME} !=https [NC]