CodeIgniter HMVC中的基本URL在辅助模块中丢失www

时间:2018-08-27 17:06:16

标签: .htaccess codeigniter mod-rewrite hmvc-codeigniter codeigniter-htaccess

请问一个问题...这是我在Linux托管中使用CI 3x HMVC的项目,我有一个错误:

.htaccess是这个:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
Options -Indexes


### Redirigir la URL sin www a con www ### 
RewriteCond %{HTTP_HOST} ^myserver.com
RewriteRule (.*) https://www.myserver.com/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^myserver.com [OR]
RewriteCond %{HTTP_HOST} ^www.myserver.com
RewriteRule (.*) https://www.myserver.com/$1 [R=301,L,QSA] #Falta www


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

RewriteCond $1 !^(index\.php|global|favicon\.ico|javascript)

在我的文件config.php中,有以下一行:

$config['base_url'] = 'https://www.myserver.com/';

当我在主“模块”(前面)中加载https://www.myserver.com/时,在我所有的表单中都看到具有以下格式的文件:

<form action="https://www.myserver.com/controllerxxxx" action="post"....

问题是当我加载https://www.myserver.com/admin模块时...我看到的所有表格都具有这种格式...

区别在于“ ADMIN”中,我的base_url是https://myserver.com/,没有 WWW

怎么了?你能帮我吗?

我需要解决此问题,并在Front和Admin模块中将URL服务器保留为 WWW

谢谢!

1 个答案:

答案 0 :(得分:1)

使用此代替。因此,请用此代码替换您的.htaccess代码。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

要将HTTP更改为HTTPS,请尝试此操作。

 RewriteEngine On
 RewriteCond %{HTTPS} !=on
 RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]