htaccess で次の正規表現を使用しています。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9_-\s]+)/([A-Za-z0-9_-\s]+)/?$ index.php?param1=$1¶m2=$2 [L,NC]
問題は、これがこれのどのバリエーションでも機能することです。
example.com/search/test product 123
example.com/search/test+product+123
example.com/search/testproduct123
example.com/search/test%20product%20123
しかし、ピリオド (.) を入れると一致せず、404 メッセージが表示されます。私は正規表現の初心者で、[A-Za-z0-9_-\s] に追加してすべての文字を許可する構文がわかりません。[.*] はうまくいくと思いますが、それでも 404 になります。
更新しました:
では、これをどのように受け止めますか:
^([A-Za-z0-9_-\s]+)/([A-Za-z0-9_-\s]+)/?$
そして、次のような文字列を認識できるようにします。
search/st.+charles