lighttpdのurl.rewriteonceのApacheの同等?
-
13-09-2019 - |
質問
私はこのように自分のアプリケーションのエントリポイントを持っています。
/app/index.php <-- this is the main dispatcher.
とアプリケーションの特定のフォルダの下の/アプリ/
/app/todo/
/app/calendar/
/app/bugtrack/
各アプリケーションフォルダには、アプリケーション固有のファイルをcotainsます。
私は/app/index.phpを通過するすべての要求のアンダーアプリを渡したいと思います。
だからます。
/app/todo/list/today -> goes to /app/index.php
/app/ -> goes to /app/index.php
/app/bugtrack/anything/else goes to /app/index.php
私のlighttpdのテストマシン上で私はこのようなルールを記述することで、それそれを行う簡単にできます。
url.rewrite-once = (
"^\/app\/todo\/*" => "/app/index.php",
"^\/app\/calendar\/*" => "/app/index.php",
"^\/app\/bugtrack\/*" => "/app/index.php",
)
今では.htaccessのとのmod_rewriteを使用してApache上で動作するようにする必要があります。
しかし、どんなに私が何をすべきか、それが働いていない。
私は
/app/.htaccessに次のように書いていますRewriteEngine on
RewriteRule .* index.php [QSA]
これは、/アプリ/と/アプリ/ TODOのために働く/しかし、例えば/アプリ/藤堂/リスト/今日のために失敗します。
誰もがそれを行う方法を私に任意のアイデアを与えることができますか?
解決
RewriteEngine On
RewriteBase /app
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
これがないと、要求は、ファイル名またはディレクトリでない場合、index.phpのにそれを書き換えています。そして、$_SERVER[REQUEST_URI]
を確認します。
所属していません StackOverflow