2013-11-03 149 views
1

我已經基本上開發了一個自定義的框架,爲自己從index.php文件使用下面的.htaccess線重寫規則基礎和具體路徑

RewriteRule .* index.php [QSA,L] 

我現在已經開發了一個REST API,我需要運行所有通過相同的服務器/根運行,我已經嘗試添加下面的URL到.htaccess只是提示與自定義404我已經集成到我的自定義框架,所以基本上它忽略了這一行,只是試圖使用RewriteRule我的自定義框架

RewriteRule /api/v1/(.*)$ myAPI.php?request=$1 [QSA,NC,L] 

我怎樣才能得到它,所以我我的API網址將不被作爲查詢傳遞給我的其他重寫規則

我的.htaccess看起來像你的規則如下

Options +FollowSymlinks 
RewriteEngine on 
RewriteOptions MaxRedirects=10 

AddType "text/html; charset=UTF-8" html 
AddType "text/plain; charset=UTF-8" txt 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    # if file not exists 
    RewriteCond %{REQUEST_FILENAME} !-f 

    # if dir not exists 
    RewriteCond %{REQUEST_FILENAME} !-d 

    # avoid 404s of missing assets in our script 
    RewriteCond %{REQUEST_URI} !^.*\.(jpe?g|png|gif|css|js)$ [NC] 

    # rest api url 
    RewriteRule ^api/v1/(.*)$ /myAPI.php?request=$1 [QSA,NC,L] 

    # core framework url rewriting 
    RewriteRule .* index.php [QSA,L] 
</IfModule> 

回答

1

刪除斜線:

RewriteRule ^api/v1/(.*)$ /myAPI.php?request=$1 [QSA,NC,L] 

.htaccess是每目錄指令和Apache條從RewriteRule URI模式的當前的目錄路徑。

+0

它仍然忽略** RewriteRule **,我已將我的.htaccess添加到問題 – Curtis

+0

您可以嘗試註釋掉文件存在和目錄是否存在行並重新測試? – anubhava

+0

我註釋掉了無效 – Curtis