タイトルはかなり曖昧ですので謝ります。特定のパターンに一致するmod_rewrite
問題は次のコードにあります。キーワード文の後にアクションを追加する必要がありますが、アクションが存在しない場合はキーワードを上書きしないようにします。
アクションで入力されたURLはhttp://websitenamehere/uk/en/meet-us/update とすることなく、次のとおりです。だから私は何それを進めることは4文字以上の文字列である場合にのみ、アクション句はトリガされたいhttp://websitenamehere/uk/en/meet-us
。このhtaccessルールは、比較を行うときに設定されている国または言語に依存してはいけません。
私が何かを見逃している場合は、私に知らせてください。質問を更新します。私はそれがかなりシンプルでなければならないことを知っていますが、現時点では、私はhtaccessでうんざりしています。
#language
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/([a-z]{2})(?:/(.*)|)$ /$1/$3?lang=$2 [NC,QSA,PT]
#country
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})(?:/(.*)|)$ /$2?country=$1 [NC,QSA,PT]
#keyword
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/(.*)/$ /$2?keyword=$1 [NC,QSA,PT]
#actions
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php !-f
RewriteRule ^([^/]+)/(.*)$ /?action=$1 [NC,QSA,PT]
#withoutactions
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php !-f
RewriteRule ^([^/]+)/(.*)$ /$2?keyword=$1 [NC,QSA,PT]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/$ /$1.php [NC,QSA,PT]