2015-04-15 68 views
1

我正在使用网站主公用目录内的.htaccess文件。我没有访问php.ini或任何其他根操作(但可以根据需要)。 我有一个类似于wordpress的框架,我需要通过根目录中的index.php所有请求。这适用于初始请求(因为它只是的index.php),但任何服务或子目录请求保持返回404Apache .htaccess重定向到index.php不适用于子目录

这是我目前的.htaccess:

<IfModule mod_rewrite.c> 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule . /index.php [L] 
</IfModule> 

谁能请帮助解决这个?

+0

'RewriteRule ^。* $。/ index.php' – Rafael

+0

还给出了根目录下的请求404,但是我注意到如果我在.htaccess中启用了“RewriteEngine on”,它会给出一个禁止响应为所有请求。是什么赋予了? –

+0

反转标志'!-f''!-d'。这意味着uri不是文件或目录 – Deadooshka

回答

0

试试这个

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php [NC,L] 
</IfModule> 

如果不解决,那么检查的mod_rewrite模块服务器上启用,您可以使用下面的PHP函数检查它

<?php 
print_r(apache_get_modules()); 
    ?> 

此功能返回apache服务器上所有激活模块的数组。

+0

谢谢。 mod_rewrite已启用,但我仍然收到权限错误。在继续使用mod_rewrite之前,尝试获取root访问权限以调整权限。 –

+0

将选项+ SymLinksIfOwnerMatch添加到.htaccess的顶部解决了权限问题。 –

相关问题