0
标题很模糊,所以我很抱歉。mod_rewrite,匹配特定模式
问题在于下面的代码。我需要在关键字语句后添加动作,但是我不希望动作在动作不存在时覆盖关键字。
与动作输入网址是http://websitenamehere/uk/en/meet-us/update 而不:http://websitenamehere/uk/en/meet-us
所以我想被触发的操作条款,只有当什么继续它是4个或更多字符的字符串。这个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]