5

サーバーで FuelPHP を動作させようとしています。RewriteRule に .htaccess ファイルを使用するアクセス権がありません。ただし、私のホストでは、httpd.conf ファイルの一部を指定することが許可されています。

以下は私が望むものに対して機能します:

<Directory /Applications/XAMPP/xamppfiles/htdocs/sandbox/username/public>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</Directory>

ただし、そこにある「ユーザー名」以上の機能が必要です。このディレクトリでワイルドカードを使用して、1 回限りの解決策として「ユーザー名」の任意の値に対して機能するようにするにはどうすればよいですか?

このアドバイスはapache manualで見つけましたが、それを で動作させる方法がわかりませんRewriteRule

次のことを試しましたが、うまくいきませんでした:

<Directory /Applications/XAMPP/xamppfiles/htdocs/sandbox/*/public>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</Directory>

助けてください!

4

2 に答える 2

8

あなたはapacheのマニュアルに近づいていました:

<Directory /Applications/XAMPP/xamppfiles/htdocs/sandbox/*/public>

<Directory ~ "/Applications/XAMPP/xamppfiles/htdocs/sandbox/.*/public">
于 2012-10-04T01:05:11.713 に答える
1

私たちが抱えていた問題に対処する次のメッセージが見つかりましたが、実際の解決策は提供されていません:ワイルドカードを使用するディレクトリ ディレクティブ内で apache2 mod_rewrite を使用する方法は?

最終的に次のソリューションを使用しました。

RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d

RewriteRule ^(/sandbox/([^/]*)/public/.*)$ /sandbox/$2/public/index.php?$1 [PT,QSA]

「PT」は、通常はディレクトリ ブロック内で暗示されるため、追加する必要があり、ターゲット パスをファイル パスではなく URI として扱うように指示します (完全なローカル パスを取得していないため、これは機能しません)。 . QSA フラグは、最初に送信されたすべての情報が index.php に確実に渡されるようにするだけです。

于 2012-02-09T17:15:01.777 に答える