我想知道是否可以将 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,但将正确的 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,R=301,NE,L]
关于apache - 我可以使用 HTACCESS 来格式化此 URL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66158915/