1

我正在使用 php CodeIgniter 并在我的 .htaccess 文件中有以下重写规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

由于我希望用户通过 SSL 使用该站点,因此我想添加以下重写规则:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.link.com/$1 [R,L]

但是,当我这样做时,子目录中的每个页面都会有 /index.php/actual_page - 之前的 index.php 是不需要的。我认为这可能来自RewriteRule ^(.*)$ index.php/$1 [L]那里,但没有它可以正常工作。RewriteRule ^(.*)$ https://www.link.com/$1 [R,L]

那么,如何在不破坏第一次重写的情况下将 url 重写为 https 呢?

4

1 回答 1

1

确保 https 重定向发生在重写 index.php 之前。你希望它看起来像这样:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.link.com/$1 [R,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
于 2012-08-29T21:30:26.233 回答