2014-04-01 26 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我認爲這是默認啓用的,但我不是。

相關問題