2017-07-04 19 views
1

私はPHP経由でWeb APIを構築しています。私が苦労していることの1つは、何かが存在しないときに親フォルダのindex.phpにリダイレクトするhtaccessファイルを設定することです。htaccess親フォルダへのリダイレクトindex.phpが存在しない場合

/SkedApi/ 
    index.php 
    /Users/ 
     index.php 

これは私がこれまで持っているものですが、それが動作していない:それが存在しない場合は

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [NC,L] 

は現在、それはすべての帰りにそれをリダイレクトするマイフォルダ構造は次のようになります/SkedApi/index.phpにしかし、/Users/3の場合は/Users/index.phpにリダイレクトする必要があります。 /Users/が正しく機能し、/Users/index.phpに転送されます。

答えて

-1

あなたが使用することができます絶対パス:ユーザーのための

​​

と休息のための

RewriteRule ^(.*)$ /index.php [NC,L] 

コメント:再利用したい場合は、正規表現に括弧が必要です。このように:RewriteRule ^User/(.*)$ /User/index.php?uid=$1 [NC,L]あなたがシンプルに行くことができないかぎり、ユーザー/

編集:何らかの種類のコントローラロジックを実装する場合は、正規表現でそれらを捕まえることができます。当然の

RewriteRule ^([^/]*)/(.*)$ /Users/index.php?mycontroler=$1&mydata=$2 [NC,L] 

あなたのフレームワークは、直接クエリ文字列からこの情報を取得する場合は、$ 1 $ 2を省略することができます:あなたのコントローラーを考慮

は、単一の単語です。

RewriteRule ^([^/]*) /Users/index.php [NC,L] 
+0

確かにこれを解決する一般的な方法があります。これは、新しいコントローラを追加するたびに、htaccessファイルを編集する必要が非常にエラーが発生しやすいようです。 – keelerjr12

+0

@gotoguru、はい私のフレームワークは、クエリ文字列からそれを取得します。 – keelerjr12

+0

これは私のためには機能しません。 – keelerjr12