HTACCESS 将 URL 更改为更友好,但仍发送变量

HTACCESS Change URL to be more friendly but still send variable

提问人:UGO CD 提问时间:10/3/2023 更新时间:10/4/2023 访问量:29

问:

我想更改此网址:

https://www.ugocd.com/ilustracion?rubro=ilustracion

像这样重写:

https://www.ugocd.com/ilustracion

但仍然发送rubro=ilustracion,因为该页面中的一切都适用于此变量,如果可能的话,我希望有一个一般规则,因为我还有其他类似的页面:

https://www.ugocd.com/arte?rubro=arte

https://www.ugocd.com/animacion?rubro=animacion

https://www.ugocd.com/proyectos?rubro=proyectos

我尝试了很多东西,但没有任何效果,任何人都可以帮助我。

谢谢

我尝试了很多解决方案,但没有任何效果,我希望找到解决我问题的方法。

.htaccess 重写friendly-url

评论

0赞 Aljaz 10/3/2023
您应该在应用程序中解决这个问题,而不是使用 htaccess。如果您调用 ugocd.com/ilustracion url 不起作用,因此在 htaccess 中创建重定向不会得到您想要的结果。
0赞 UGO CD 10/3/2023
对不起,我不明白。应用程序在哪里?我想将 url 转换为更友好的版本,但仍然发送发送“RUBRO”的变量
0赞 UGO CD 10/4/2023
我终于可以用这段代码来做:RewriteEngine On RewriteRule ^sobre-mi$ sobre-mi?rubro=sobre_mi它工作得很好。

答:

0赞 arkascha 10/4/2023 #1

您只需要一个简单的重写规则:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?ilustracion$ /ilustracion?rubro=ilustracion [L]

通用方法是这样的:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?(\w+)$ /$1?rubro=$1 [L]

可能需要添加白名单的原始形式,以防止其他 URL 被重写:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} ^(ilustracion|arte|animation|proyectos)$
RewriteRule ^/?(\w+)$ /$1?rubro=$1 [L]

您可能需要调整这些建议,使其适合您的特定设置。当你只是盲目地复制一些东西而不了解你尝试使用的工具的实际工作方式时,你不能指望一切都是开箱即用的。