htaccess没有重定向到主index.php

时间:2014-05-04 11:11:05

标签: php apache .htaccess mod-rewrite ubuntu

htaccess不会将我输入的内容重定向到我服务器上的index.php。但它在我的本地服务器(wamp)上运行良好。

这是htaccess:

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine on
    RewriteBase /

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

这是最基本的htaccess ....

如果我转到主网址没有问题,页面会加载,但如果我输入类似/inventaris/index的内容,则会显示404页面。

在同一台服务器上我有其他网站使用htaccess。其中一个是带有永久链接的wordpress博客,因此启用了mod_rewrite。

任何人都知道为什么这不起作用?我的实时服务器在Ubuntu上运行。

更新:已加载的模块
core mod_log_config mod_logio prefork http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_deflate mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_status

3 个答案:

答案 0 :(得分:1)

确保在Options下设置+ FollowSymLinks,我会使用

RewriteRule ^index\.php$ - [L]
RewriteRule ^ /index.php [L]

答案 1 :(得分:0)

这也有助于您获得PATH_INFO

DirectoryIndex index.php

IndexIgnore */*
RewriteEngine On

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

答案 2 :(得分:0)

经过一些调试后,我发现.htaccess文件没有做任何事情。甚至不是一个基本的前锋。

在进行一些Google搜索后,我将虚拟主机设置AllowOverride None更新为AllowOverride All。默认虚拟主机也是一样(只是为了确定)。它似乎现在有效。

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

解释我发现:您需要修改包含AllowOverride None的行以读取AllowOverride All。这告诉Apache,允许.htaccess文件覆盖以前的指令是可以的。