我有一个在 Apache2 上运行的 codeignitor 应用程序,我已经设法用这个 .htaccess 从 url 中删除了 index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
现在我想让网站的某些部分重定向到 https,我试过这个:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
RewriteRule ^/?cpanel/(.*) https://%{SERVER_NAME}/cpanel/$1 [R,L]
RewriteRule ^/?login/(.*) https://%{SERVER_NAME}/login/$1 [R,L]
但它不起作用。我不得不说,当谈到 Apache 重写时,我是一个菜鸟。我找不到任何关于如何删除 index.php 并将站点的某些部分重写/重定向到 https 的教程。
有任何想法吗,
谢谢。
[L]
意思是“最后”,即如果此规则匹配,则停止处理进一步的规则。我猜想CPanel 使用“虚拟”URL(即不指向实际文件),因此像这样的 URL/cpanel/some-action-that-is-not-actually-a-file
被第一条规则捕获,而不是后面的规则。RewriteEngine
尝试在你的第一个和之间移动最后两个规则RewriteCond
?(编辑:并且还修复了问题下评论中指出的重定向循环)