1

私は .htaccess ファイル内で mod 書き換えを使用して MVC スタイルのルーティング システムをセットアップしています (および一部の php 解析も)。

コントローラーとして使用されるさまざまな php ファイルにさまざまな URL を送信できるようにする必要があります。(index.php、admin.php など...)

最初のスラッシュの後の最初の単語を見て、これをうまく行う書き換えルールを見つけて編集しました。

RewriteCond %{REQUEST_URI} ^/stats(.*)
RewriteRule ^(.*)$ /hello.php/$1 [L]  

ただし、私の問題は、最初の単語ではなく、2 番目の単語に基づいて書き直したいことです。最初の単語をユーザー名にしたい。だから私はこれが欲しい:

http://www.samplesite.com/username/admin にリダイレクトして admin.php

それ以外の:

http://www.samplesite.com/admin

「何でもここにある」タイプの変数を使用して、書き換えルールを少し編集する必要があると思いますが、その方法がわかりません。

4

2 に答える 2

1

[^/]+/ にプレフィックスを付けて、そのユーザー名/に一致させて無視できると思います/

RewriteCond %{REQUEST_URI} ^/[^/]+/stats(.*)
RewriteRule ^[^/]+/(.*)$ /hello.php/$1 [L]  

http://www.samplesite.com/username/statsadminはhttp://www.samplesite.com/hello.php/statsadmin にリダイレクトされます(つまり、.htaccess ファイルがわかりません)。

于 2013-01-03T00:52:45.463 に答える
0

あなたの質問に答えるために、「an any can be here type variable」はピリオドのようなもので、「任意の文字」.を意味します。また、アスタリスクは、「先行する文字または括弧で囲まれたグループ化された文字の 0 個以上」を意味します。*

しかし、それは必要ないと思います...一致する URL が常に で終わる"admin"場合は、ドル記号を使用し$て文字列の末尾を一致させることができます。

Rewrit­eRule admin$ admin.php [R,NC,L]

に書き換えwww.anything.at/all/that/ends/in/adminますwww.anything.at/admin.php

于 2013-01-03T01:12:03.263 に答える