URL 友好的 htaccess

问题描述 投票:0回答:1

我一直致力于使我的网站中的网址更加用户友好:
所以我一直在这样修改htaccess:

RewriteEngine On

RewriteRule ^diseno-grafico/([^/.]+)/([^/.]+)$ diseno-grafico-filtro?id=$1&rubro=$2

RewriteRule ^diseno-web/([^/.]+)/([^/.]+)$ diseno-web-filtro?id=$1&rubro=$2

RewriteRule ^ilustracion/([^/.]+)/([^/.]+)$ ilustracion-filtro?id=$1&rubro=$2

RewriteRule ^arte/([^/.]+)/([^/.]+)$ arte-filtro?id=$1&rubro=$2

RewriteRule ^animacion/([^/.]+)/([^/.]+)$ animacion-filtro?id=$1&rubro=$2 

RewriteRule ^proyectos/([^/.]+)/([^/.]+)$ proyectos-filtro?id=$1&rubro=$2

RewriteRule ^ilustracion/galeria-clasica/([^/.]+)/([^/.]+)$ galeria-clasica?id=$1&rubro=$2

因此网址更干净,更易于阅读:
https://ugocd.com/diseno-grafico/Accordion-Brochure/diseno_grafico
https://ugocd.com/diseno-web/UI,-SEO-y-Maquetaci%C3%B3n-HTML-CSS3/diseno_web
https://ugocd.com/ilustracion/Ilustracion-en-tintas/ilustracion

我现在想要的但我不知道该怎么做是不要显示 url diseno_grafico、diseno_web、ilustracion 等的最后部分,因为重复没有任何有用的东西。

有人可以帮助我吗?我想我已经很接近了

我尝试过使用这个?:

RewriteRule ^arte/([^/.]+)/([^/.]+)$ arte-filtro?id=$1&rubro=$2 [QSA]

还有这个,但它不发送变量rubro,我不想在网址中显示它,但我希望它仍然发送它:

RewriteEngine On
RewriteRule ^(.*)/diseno_web$ $1 [R=301,L]
.htaccess url url-rewriting
1个回答
0
投票

对我来说,您似乎只是想以字面方式指定第二组,这样您就不必在请求的 URL 中再次指定它。所以类似这样的事情:

RewriteEngine On
RewriteRule ^diseno-grafico/([^/.]+)/?$ diseno-grafico-filtro?id=$1&rubro=diseno-grafico [L]

这显然只适用于恰好涵盖一个这样的术语的“专门”规则。 也许你可以这样概括:

RewriteEngine On
RewriteRule ^(\w+)/([^/.]+)/?$ $1-filtro?id=$2&rubro=$1 [L]

您可能需要添加白名单,以防止该规则应用于您不希望重写的请求 URL: RewriteEngine On RewriteCond %{REQUEST_URI} ^/(diseno-grafico|diseno-web|ilustracion)/ RewriteRule ^(diseno-grafico|diseno-web|ilustracion)/([^/.]+)/?$ $1-filtro?id=$2&rubro=$1 [L]

或使用条件:

RewriteEngine On RewriteCond %{REQUEST_URI} ^/(diseno-grafico|diseno-web|ilustracion)/ RewriteRule ^(\w+)/([^/.]+)/?$ $1-filtro?id=$2&rubro=$1 [L]

或者也许是这样的变体来增强可读性:

RewriteEngine On RewriteCond %{REQUEST_URI} ^/diseno-grafico/ RewriteCond %{REQUEST_URI} ^/diseno-web/ RewriteCond %{REQUEST_URI} ^/ilustracion/ RewriteRule ^(\w+)/([^/.]+)/?$ $1-filtro?id=$2&rubro=$1 [L]

© www.soinside.com 2019 - 2024. All rights reserved.