我有一个使用directadmin控制面板的VPS网站,但我刚刚使用Cpanel转移到另一个VPS。它曾经在旧的VPS上工作,但在新的VPS中,我无法使它工作.. !!
我的脚本是CodeIgniter脚本,在这个脚本中这个url:
www.mydomain.com/index.php/news
应转换为:
www.mydomain.com/news
但是在使用htaccess之后,我可以大大打开主页面(这是index.php)但是当我想去www.mydomain.com/news时(这应该定义为www.mydomain.com/index。 php / news by htacces)它显示了主页面。我在public_html文件夹(在home / user下)安装了CodeIgniter(我用于我的脚本的框架)。
我拥有对我的VPS,WHM / Cpanel的完全管理员权限,我可以进行任何更改。
这是我在旧版VPS中为我工作的.htaccess:
Options FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>
我刚刚发现通过转换这一行:
RewriteRule ^(.*)$ index.php/$1 [L]
到这一个:
RewriteRule ^(.*)$ index.php/$1 [R]
表示将标志[L]更改为[R],它可以正常工作,但它只是将 www.domain.com/news 转换为 www.domain.com/index.php/news 并在地址栏中显示,这不是我想要的。
你有解决方案吗?!我应该更改Cpanel上的任何配置吗?!
答案 0 :(得分:0)
试试这个:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|images|css|js|favicon\.ico|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
希望它适用于您的CodeIgniter安装,我遇到了同样的问题,这解决了它。