0

変えます

mydomain.com/directory/?name=lorem&action=posts

mydomain.com/directory/lorem/posts

しかし、私は今、「その他」と呼ばれるものを追加しようとしています

だから私は取得したい

mydomain.com/directory/?name=lorem&action=posts&other=38291389

mydomain.com/directory/lorem/post/38291389

これは私が最初の例で使用している.htaccessコードです

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(\w+)(/(\w+))?$ /directory/?name=$1&action=$3

これが2番目の例で作成しようとしたものですが、機能しません

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(\w+)(/(\w+))?$ /directory/?name=$1&action=$3&other=$4

誰かが私がこれを機能させるのを手伝ってもらえますか?

4

1 に答える 1

1

単純にする:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -d [OR] 
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteRule .* - [L]

RewriteRule ^(\w+)/(\w+)/(\w+)/?$ /directory/?name=$1&action=$2&other=$3
RewriteRule ^(\w+)/(\w+)/?$ /directory/?name=$1&action=$2
RewriteRule ^(\w+)/?$ /directory/?name=$1

1つの正規表現に複数の効果を組み合わせても実際のメリットはありませんが(賢くて気分が良くなりますが)、正規表現エンジンが機能する場合、賢い正規表現は2つまたは3つの単純なルールよりも一致するのに時間がかかる場合があります(その上)。

于 2012-05-30T19:08:23.153 に答える