2014-04-01 27 views
6

我使用的Apache2(我的虚拟服务器),这已经是我的的Debian安装工作。每一件事情去罚款,但现在的问题,我.htaccess的.htaccess未在Linux操作系统(Debian的)的Apache2

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

它不工作
我想这我使用&也许我的代码或东西,我有一些问题的,因为的Apache2版本我的服务器上配置

我想重定向我的网址,以主索引页如果一个输入错误或不可用

+0

你究竟想用你的网址做什么?从什么改变到什么?另外为什么你的代码中有两个'RewriteCond%{REQUEST_FILENAME}!-f'? – Howli

+0

第二个是{REQUEST_FILENAME}!-l –

+0

好的,那么网址呢?你从什么改变它并改变? – Howli

回答

1

此代码:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,R] 

会重定向到http://example.com/test.php如果http://example.com/index.php?url=test.php该文件不存在。我的代码和你的代码之间的唯一区别是我有[R]而不是[QSA,L]如果它仍然不适合你,并且你在根文件夹中有htaccess文件,那么我认为它不是一个htaccess文件问题

+0

我已经尝试使用/ mvc /索引它不工作 –

24

一整天的时光后,我得到了我的答案

在文件夹
的Apache2 >>网站可用 >>有一个叫默认文件

在默认我们必须改变它

来源:

<Directory /var/www/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride None 
     Order allow,deny 
     allow from all 
    </Directory> 

TO:

<Directory /var/www/> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
</Directory> 

其工作。它启用了使用.htaccess文件。

+3

Thx,这是工作。但是我在/etc/apache2/apache2.conf中将其改为Debian – MoonYard

+0

请在这里记录'Indexes'。我将允许用户浏览你的image/css/js文件夹。 – Bira

7

我想补充一点,/etc/apache2/mods-available/rewrite.load需要启用:

a2enmod rewrite 

在Debian我认为这是默认启用的,但我不是。

相关问题