Apache的URL重写 - 匹配目录

问题描述:

我有一个的.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

的API根据在这个Options Indexes FollowSymLinks MultiViews在你的问题,我想问题是MultiViews启用。

您可以尝试添加该行重写规则集的顶部:

Options +FollowSymlinks -MultiViews

有可能apache国防部重写没有启用,或htaccess不允许。 并且不要这一切

RewriteEngine On 
也*社

忘记以前 尝试RewriteRule ^api/(.*)/(.*)$ api.php?a=$1&d=$2 [NC]

人使用笨,如果你需要你有一个API我用这个

http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/

+0

谢谢你的回应。 'mod_rewrite'已启用。 – Leonard 2013-02-28 14:54:20