如何使用带有 $_SERVER['REQUEST_URI'] 的友好网址强制 https?



各位!

我有一个PHP应用程序在本地主机的Apache2上运行。系统使用来自$_SERVER['REQUEST_URI']的友好URL。我的.htaccess:

RewriteEngine On
#RewriteRule ^(.*)$ https://myapp.localhost/$1 [R=permanent]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteRule ^$ index.php?/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?/$1 [QSA,L]

如果我评论第3行和第4行,系统运行正常https://myapp.localhost/index.php?/它需要写在哪里https://myapp.localhost/.SSL认证没问题。

使用此配置无法找到图像和档案,但如果没有第3行和第4行,并且手动使用https,则会显示。

谢谢你的合作。

对不起,我用葡萄牙语回答的最后一条消息是@Martin先生。

也许问题是使用了不止一个教程。经过这么多搜索。我知道:有必要删除/etc/apache2/sites-available/bigpecasnew-localhost-ssl.conf中的一些代码行,并在我阅读时在<Directory /home/user/site>SSLOptions +StdEnvVars</Directory>中添加这些行https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-18-04.

我在.htaccess:上更改代码后

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www. [NC]
RewriteCond %{HTTP_HOST} ^(?:www.)?(.+)$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]
RewriteRule ^$ index.php?/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?/$1 [QSA,L]

这样就行了。

谢谢你的合作。

相关内容

  • 没有找到相关文章

最新更新