0

这是我的 .htaccess 文件:

     RewriteEngine On

     RewriteBase /mydomainname.com/
     RewriteCond $1 !^(index\.php|images|assets|robots\.txt) 
     RewriteRule ^(.*)$ /index.php/$1 [L]

此代码在一个主机上运行,​​而在另一个主机上不运行。我尝试在两个主机上运行此代码

1)在一个主机上,我的代码可以在没有在 url 中添加 index.php 的情况下运行,即

 www.mydomainname.com/contrlerName/functionname

2)在另一个域上,我需要在 url 中添加 index.php,例如:

 www.mydomainname.com/index.php/contrlerName/functionname

可能是什么问题?

提前致谢!

4

3 回答 3

1

删除 RewriteBase 行,这可能是您的旧行所必需的,但不是没有新行。那是非标准的,它不应该真的是必需的。可能他们有一些疯狂的虚拟主机设置。

它也可能是你的新主机,不允许 .htaccess 文件,所以它被忽略了。

于 2013-03-06T15:49:07.437 回答
1

AllowOverride All|None|directive-type [directive-type]

确保允许覆盖指令.htaccess在其不工作的第二个主机中启用文件。

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

于 2013-03-06T15:51:30.597 回答
0

只需检查 mod_rewrite 在您的第二个主机上的工作。询问托管支持。就像托管不支持重写一样。

于 2013-03-06T15:56:51.527 回答