以不同的方式处理htaccess apache中的2个类似url



大家好,我需要apache htaccess的帮助。我有这个2网址:

  • 测试/en/guns2/贝雷塔/
  • 测试/en/1564/振动-制动-m9a3/

我如何以不同的方式捕捉这两种情况?

实际上我有这个htaccess:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/test/admin[NC]
RewriteCond %{REQUEST_URI} !^/test/(it|en) [NC]
RewriteRule ^(.*)$ /test/en/$1 [R=301,L,QSA]
RewriteRule ^([w-]+)/([w-]+)/(d+)/([w-]*)$ /test/index.php?detMod=$3 [L,QSA,NC]
RewriteRule ^([w-]+)/([w-]+)/([w-]+)/([w-]*)$ /test/index.php?page=$2&category=$3 [L,QSA,NC]

但对于数字(1564(而不是(枪2(的情况,我需要另一条规则

使用d+只匹配数字,使用[w-]+匹配字母数字、_-:

^([w-]+)/([w-]+)/(d+)/([w-]*)$

^([w-]+)/([w-]+)/([w-]+)/([w-]*)$

建议访问。htaccess:

RewriteCond %{REQUEST_URI} !^/test/admin[NC]
RewriteCond %{REQUEST_URI} !^/test/(it|en) [NC]
RewriteRule ^(.*)$ /test/en/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([w-]+)/([w-]+)/(d+)/([w-]*)$ test/index.php?detMod=$3 [L,QSA,NC]
RewriteRule ^([w-]+)/([w-]+)/([w-]+)/([w-]*)$ test/index.php?page=$2&category=$3 [L,QSA,NC]

最新更新