2013-02-28 104 views
0

我有一個的.htaccess文件與以下規則:Apache的URL重寫 - 匹配目錄

RewriteRule ^api\/([A-Za-z0-9\-]+)\/?([0-9=a-zA-Z%]+)?\/?$ api.php?service=$1&param=$2 [QSA,L] 

出於某種原因,它的工作在我的主機,但不能在我的本地LAMP安裝。有什麼我做錯了嗎?

Apache的版本:的Apache/2.2.22(Ubuntu的)

錯誤消息: 404未找到( 「所請求的URL/API /字/搜索/在此服務器上未找到」)

編輯:有另一部正在工作的重寫規則,所以mod_rewrite的模塊被激活:

RewriteRule ^([a-z]+)\.page$ index.php?template=$1 [QSA,L] 

阿帕奇小號ITE配置是(當地):

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

編輯#2我想匹配http://localhost/api/service/method/

+0

可以請你告訴我,你是tryiing API/DIR1/DIR2/someging的網址是什麼? – ddjikic 2013-02-28 15:14:01

+0

@ddjikic我已更新我的原始帖子。 – Leonard 2013-02-28 15:19:02

+1

嘗試在重寫規則集「Options + FollowSymlinks -MultiViews'上添加此項# – 2013-02-28 15:29:52

回答

1

的API根據在這個Options Indexes FollowSymLinks MultiViews在你的問題,我想問題是MultiViews啓用。

您可以嘗試添加該行重寫規則集的頂部:

Options +FollowSymlinks -MultiViews