.htaccess 如何在子域上配置Codeigniter网站的副本?

.htaccess 如何在子域上配置Codeigniter网站的副本?,.htaccess,codeigniter,.htaccess,Codeigniter,看起来像这个问题,但没有一个解决方案对我有效 我想为我正在工作的Codeigniter(版本3.1.9)网站创建一个测试环境。 我想我应该在我的主域名上使用一个子域名 我通过cPanel设置子域(test.mydoaim.com),并将所有代码文件复制到相关目录 现在,当我访问test.mydomain.com或test.mydomain.com/controller\u name时,一切都很好,但是当我尝试任何内部链接(例如test.mydomain.com/controller\u name

看起来像这个问题,但没有一个解决方案对我有效

我想为我正在工作的Codeigniter(版本3.1.9)网站创建一个测试环境。 我想我应该在我的主域名上使用一个子域名

我通过cPanel设置子域(test.mydoaim.com),并将所有代码文件复制到相关目录

现在,当我访问test.mydomain.com或test.mydomain.com/controller\u name时,一切都很好,但是当我尝试任何内部链接(例如test.mydomain.com/controller\u name/anything)时,我在Firefox上什么也没有,或者在Chrome上没有收到以下错误消息:

此页面不工作

www.test.mydomain.com当前无法处理此请求

在子域htaccess文件上更改此行时:

 RewriteRule ^(.*)$ index.php/$1 [L]
关于这一行:

 RewriteRule ^(.*)$ /test/index.php/$1 [L]
相同内部页面上的错误更改为:

500内部服务器错误发生内部服务器错误

这个错误也出现在test.mydomain.com/controller\u name上,在我更改htacces文件之前可以访问它

因此,由于错误消息在更改后发生了变化,我猜这个问题确实与htaccess有关,但我不知道正确的语法应该是什么


这是完整的htacces文件:

RewriteOptions inherit
RewriteEngine On

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

# for non www urls, add www and force https:
RewriteCond %{HTTP_HOST}(.*) !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R,L]

# BEGIN cPanel-generated php ini directives, do not edit
# Manual editing of this file may result in unexpected behavior.
# To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
# For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)
<IfModule php7_module>
   php_flag display_errors Off
   php_value max_execution_time 120
   php_value max_input_time 60
   php_value max_input_vars 1000
   php_value memory_limit 128M
   php_value post_max_size 8M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path "/var/cpanel/php/sessions/ea-php70"
   php_value upload_max_filesize 32M
   php_flag zlib.output_compression Off
</IfModule>
<IfModule lsapi_module>
   php_flag display_errors Off
   php_value max_execution_time 120
   php_value max_input_time 60
   php_value max_input_vars 1000
   php_value memory_limit 128M
   php_value post_max_size 8M
   php_value session.gc_maxlifetime 1440
   php_value session.save_path "/var/cpanel/php/sessions/ea-php70"
   php_value upload_max_filesize 32M
   php_flag zlib.output_compression Off
</IfModule>
# END cPanel-generated php ini directives, do not edit
RewriteCond %{HTTP_HOST} ^domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ "https\:\/\/mydomain\.com\/$1" [R=301,L]

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “alt-php70” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-alt-php70 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

你查过服务器日志了吗?没有。没想过。我应该在日志中查找什么?您提到它是使用cpanel托管的,您可以检查
日志
文件夹吗?它应该与
public\u html
位于同一位置。或者
/home/username/logs/domain_tld.php.error.log
子域文件夹下的
error_log
文件不包含任何新内容。我还检查了cPanel Metrics上的错误日志,其中没有与子域相关的内容。能否检查CI项目中的
/application/logs
文件夹?
$route['default_controller'] = 'website';
$route['404_override'] = 'student/four_o_four';
$route['translate_uri_dashes'] = FALSE;
$route['demo'] = 'student/demo';