1

現在、.htaccess を使用して URL を書き換えています。

example.com/mixtape.php?id=(WHATEVER #)
...to...
example.com/m/(WHATEVER #)

それを達成するために使用するコードは次のとおりです。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m\/([^/\.]+)/?$ mixtape.php?mixid=$1 [L]

私が達成しようとしている次のことは、クリーンな問題で、私の書き直しです。

example.com/edit-mixtape.php?id=(WHATEVER #)
...to...
example.com/m/(WHATEVER #)/edit


編集: "WHATEVER #" は編集中のミックステープの ID です。通常、私は "$_GET['id']" を使用して、参照しているミックステープを確認し、その番号に関連するすべてのものを取得します。

適切な書き換え mod をうまく書くのを手伝ってくれる人はいますか?

4

2 に答える 2

2

あなたのコメントに基づいて、数字のみを許可するように元のルールも変更します。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m/(\d+)/edit/?$ edit-mixtape.php?mixid=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m/(\d+)/?$ mixtape.php?mixid=$1 [L]

ところで、おそらく一般的なルールを使用して、両方の URL を同じ php ファイルに書き込み、コントローラーでアクションを処理します。

于 2012-09-11T01:37:04.427 に答える
1

以前と同じルールを使用できますがedit、正規表現に a を追加するだけです。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^m\/([^/\.]+)/edit/?$ edit-mixtape.php?mixid=$1 [L]

元のルールにはクエリ文字列mixid=があり、例ではid=.

于 2012-09-11T01:37:11.387 に答える