微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用 HTACCESS 来格式化这个 URL 吗?

如何解决我可以使用 HTACCESS 来格式化这个 URL 吗?

我想知道是否可以将 https://site1.com/en/article-details.test-article?item=test 之类的 URL 格式化为 https://site1.com/en/article-details/test-article?item=test,因此基本上将 .test-article 更改为 /test-article

由于我的网站的工作方式,它只将 .test-article 识别为有效的选择器,因此阅读 https://httpd.apache.org/docs/2.4/rewrite/flags.html 似乎我可能需要使用 PT 标志向用户显示所需的 URL但将正确的传递给我的网站。

到目前为止,我用这个来代替斜线的点

RewriteCond %{REQUEST_URI} ^/([a-z]{2})/article-details.([a-z]{2})(/?)$
RewriteRule ^/([a-z]{2})/.*  https://%{SERVER_NAME}/$1/$2 [L,NC,R=301]

编辑(这可以按照 ravinderSingh13 的建议格式化 URL)

RewriteEngine ON
RewriteCond %{REQUEST_URI} ^/([a-z]{2})/article-details.([^?]*)(/?)$
RewriteRule ^ https://%{SERVER_NAME}/%1/article-details/%2 [QSA,R=301,NE,L]

解决方法

根据您展示的样品,您可以尝试以下操作吗?请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(en/article-details)\.(test-article)\?item=test\s [NC]
RewriteRule ^ https://site1.com/%1/%2 [QSA,R=301,NE,L]

根据 OP 的评论,在此处添加更多通用规则:

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(en/article-details)\.([^?]*)\?item=test\s [NC]
RewriteRule ^ https://site1.com/%1/%2 [QSA,L]
,

您可以尝试将此规则作为最高规则:

RewriteEngine On

RewriteRule ^(.+)\.(test-article/?)$ /$1/$2 [R=302,L,NC]

测试此规则后将 302 更改为 301

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。