2017-06-30 28 views
0

这工作正常,在localhost: 而是由其他的我托管的网站(由Hostinger.fr)htaccess的在MVC架构托管网站

RewriteBase/
RewriteEngine On 
RewriteCond expr "%{REQUEST_URI} -strmatch '*admin/*'" 
RewriteRule (.*) $1 [L] 
RewriteCond expr "%{REQUEST_URI} -strmatch '*journal/*'" 
RewriteRule (.*) $1 [L] 
RewriteRule (.*) webroot/$1 [L] 

这些线路不能正常工作遵循(处理后) htaccess的走向Web根目录目录:

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

它使用如的index.php在根目录目录存在但不显示内部页给我看第一页。 我使用MVC结构来编码站点,并且调用的程序没有直接指示 通过单击index.php页面显示的菜单中的选项,它仅向我显示一个空白页面,其中显示消息“No input file specified。 “ 没有调用webroot index.php(像在第一次),继续开发真正的程序来调用。

任何人都可以好心地建议我在.htaccess中需要做什么?

NB:Hostinger希望这样“改写基地/”命令必须放置在

回答

0

我没有时间来测试你的htaccess首位,但也有一些事情你可以尝试:

  1. 确保您的文件权限是正确的。对于大多数主机提供商,htaccess(和所有其他文件)必须具有644个权限才能工作

  2. 检查Apache的重写模块是否已安装并激活。一般情况下,默认情况下,主机提供商会启用此功能,但也许某些提供商会要求您手动激活其控制面板上的模块。

  3. 检查文件系统目录树并确保没有其他任何htaccess文件可能覆盖您的htaccess

例如行为的父目录,如果你有/home/your_user/public_html/.htaccess文件和/home/your_user/public_html/my_sub_app/.htaccess一个文件,然后如果第一个htaccess具有类似的指令:

<Directory> 
    Order Deny,Allow 
    Deny from all 
</Directory> 

它会阻止第二次htaccess覆盖行为

+0

谢谢你的研究线索,但 我已经验证了他们,Hostinger的一切都很好。 建议用于htaccess文件第一行的命令只会导致错误500 –