regex - Htaccess 重定向 https 和 http 以及自定义 url

标签 regex apache .htaccess mod-rewrite https

我是 htaccess 的新手,尽管我得到了具有自定义 URL 的部分,但我无法设法弄清楚 https 重定向与自定义 URL 的结合。我在网上找到的所有选项都给了我一个重定向循环。

所以,假设我有一个页面名为:mysite.com/hello.php,另一个页面名为 mysite.com/bye.php。

我要mysite.com/hello.php成为mysite.com/one-hello bye.php 变为 mysite.com/two-bye。这就是我现在在 htaccess 中的方式:

RewriteEngine on  
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^one-hello$ hello.php
RewriteRule ^two-bye$ bye.php

但现在我希望 hello.php 始终显示为 https,但 bye.php 始终显示为 http。我怎样才能写出所有这些?

谢谢!

最佳答案

有这样的规则:

RewriteRule ^one-hello$ hello.php [L]
RewriteRule ^two-bye$ bye.php [L]

RewriteCond %{HTTPS} off
RewriteRule ^hello\.php$ https://%{HTTP_HOST}%{REQUEST_URI} [L,NC,R]

RewriteCond %{HTTPS} on
RewriteRule ^bye\.php$ http://%{HTTP_HOST}%{REQUEST_URI} [L,NC,R]

关于regex - Htaccess 重定向 https 和 http 以及自定义 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819996/

相关文章:

javascript - 正则表达式仅包含数字和 2 个特殊字符(仅包含空格)

php - AddHandler 不适用于 .php 文件 - Apache 2.4

apache - 选项 - 索引在 Docker 容器中的 .htaccess 文件中不起作用

.htaccess - .htaccess不会重定向到错误页面

jQuery 使用正则表达式进行选择并替换链接

regex - Ocaml - 正则表达式匹配以逗号分隔的单词不起作用

c++ - 我可以在 Apache 模块中安全地使用 Boost 和/或 C++ 库吗?

php - .htaccess中的php_value显示内部服务器错误

php - 将PHP RegEx转换为JavaScript RegEx

linux - 在 Apache 中手动创建 301 重定向以将站点的所有 IP 请求重定向到正确的域名