htaccess - 从 &_GET 中删除 url 的中间部分
htaccess - remove middle part of url from a &_GET
我有 url 个这样的:
www.example.com/artworks/arte-1/english-name-1
我想删除 arte-1 并使 url 像这样:
www.example.com/artworks/english-name-1
arte-1 和 english-name-1 均来自 &_GET 结果。有时它们是一样的,比如
www.example.com/artworks/dimension/dimension
但是我想得到url的第一部分和第三部分。即使它们不同,也找不到方法来做到这一点。我尝试过的其中一件事:
RewriteRule ^artworks/([a-z0-9-]+)/?([a-z0-9-]+)$ [R=302,L]
我也试过:
RewriteCond %{THE_REQUEST} artworks/([a-z0-9-]+)/([a-z0-9-]+)
RewriteRule ^ artworks/? [L]
RewriteCond %{THE_REQUEST} artes/([a-z0-9-]+)/([a-z0-9-]+)
RewriteRule ^ artes/%2? [L]
我将它们放在 RewriteEngine On 之后,但它不起作用。我的工作 htaccess 是:
RewriteEngine On
RewriteRule ^artworks\/([a-z0-9-]+)\/([a-z0-9-]+)\/?$ index.php?id=artworks&pintura=&versao= [L]
RewriteRule ^artes\/([a-z0-9-]+)\/([a-z0-9-]+)\/?$ index.php?id=artes&pintura=&versao= [L]
RewriteRule ^([a-z0-9-]+)\/?$ index.php?id= [L]
我能得到一些帮助吗?
根据您的尝试,请尝试遵循以下规则。请确保在测试您的 URL 之前清除您的浏览器缓存。
RewriteEngine ON
##Newly added rules here.
RewriteCond %{THE_REQUEST} \s/(artworks)/(?:[\w-]+)/([\w-]+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L]
RewriteRule ^(artworks)/([\w-]+)/?$ index.php?id=&versao= [NC,L]
##OP's already existing rules edited a bit for improvement here.
RewriteRule ^artworks/([\w-]+)/([\w-]+)/?$ index.php?id=artworks&pintura=&versao= [NC,L]
RewriteRule ^artes/([\w-]+)/([\w-]+)/?$ index.php?id=artes&pintura=&versao= [NC,L]
RewriteRule ^([\w-]+)/?$ index.php?id= [L]
我有 url 个这样的:
www.example.com/artworks/arte-1/english-name-1
我想删除 arte-1 并使 url 像这样:
www.example.com/artworks/english-name-1
arte-1 和 english-name-1 均来自 &_GET 结果。有时它们是一样的,比如
www.example.com/artworks/dimension/dimension
但是我想得到url的第一部分和第三部分。即使它们不同,也找不到方法来做到这一点。我尝试过的其中一件事:
RewriteRule ^artworks/([a-z0-9-]+)/?([a-z0-9-]+)$ [R=302,L]
我也试过:
RewriteCond %{THE_REQUEST} artworks/([a-z0-9-]+)/([a-z0-9-]+)
RewriteRule ^ artworks/? [L]
RewriteCond %{THE_REQUEST} artes/([a-z0-9-]+)/([a-z0-9-]+)
RewriteRule ^ artes/%2? [L]
我将它们放在 RewriteEngine On 之后,但它不起作用。我的工作 htaccess 是:
RewriteEngine On
RewriteRule ^artworks\/([a-z0-9-]+)\/([a-z0-9-]+)\/?$ index.php?id=artworks&pintura=&versao= [L]
RewriteRule ^artes\/([a-z0-9-]+)\/([a-z0-9-]+)\/?$ index.php?id=artes&pintura=&versao= [L]
RewriteRule ^([a-z0-9-]+)\/?$ index.php?id= [L]
我能得到一些帮助吗?
根据您的尝试,请尝试遵循以下规则。请确保在测试您的 URL 之前清除您的浏览器缓存。
RewriteEngine ON
##Newly added rules here.
RewriteCond %{THE_REQUEST} \s/(artworks)/(?:[\w-]+)/([\w-]+)\s [NC]
RewriteRule ^ /%1/%2? [R=301,L]
RewriteRule ^(artworks)/([\w-]+)/?$ index.php?id=&versao= [NC,L]
##OP's already existing rules edited a bit for improvement here.
RewriteRule ^artworks/([\w-]+)/([\w-]+)/?$ index.php?id=artworks&pintura=&versao= [NC,L]
RewriteRule ^artes/([\w-]+)/([\w-]+)/?$ index.php?id=artes&pintura=&versao= [NC,L]
RewriteRule ^([\w-]+)/?$ index.php?id= [L]