在我的网络根目录(var/www)中,我的 .htaccess 文件中有以下内容:
RewriteCond %{REQUEST_URI} ^system.*
RewriteCond $1 !^(index\.php|vges|images|robots\.txt)
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /test/index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
然后我有一个带有 codeigniter 项目的子目录(/var/www/test)。它还有一个 .htaccess 文件,其中包含以下内容:
RewriteEngine On
RewriteCond $1 !^(index\.php|quiz|vges|buddy|css|fonts|img|images|js|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
当我访问 localhost 时,我可以查看测试目录,当我转到测试目录时,我会显示默认控制器视图。但是当我访问 localhost/test/controller 时,我得到一个 404 not found 错误:
The requested URL /index.php/events was not found on this server.
编辑:我通过将最后一行 /var/www/vges.htaccess 更改为:
RewriteRule ^(.*)$ test/index.php/$1 [L]
虽然我怀疑如果我要将此测试项目上传到服务器,它不是子目录,那么我可能会收到错误。最好的解决方案是什么?我应该在我的 .htaccess 文件中更改什么
- 我可以在本地机器上有子目录
- 当我将它们作为单个项目(例如测试项目)上传到服务器时,我不必修改 .htaccess 文件。
谢谢。