2013-02-28 63 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