我想重写URL的一个特定部分,同时保留其馀部分,更准确地说是扩展名。
my.domain.co/posts/something至
my.domain.ai/posts/something我尝试了很多建议,但总是走进死胡同。在阅读重定向指南时,我成功地解决了一件事,那就是它不起作用。我基本上是想用.ai替换.co。
RewriteCond %{HTTP_HOST} ^([^.]*\.)?my.mydomain.co$
RewriteRule ^(.*) https://%my.mydomain.ai/$1 [R=301,L]我遗漏了什么?
发布于 2021-10-04 15:22:11
RewriteCond %{HTTP_HOST} ^(^.*.)?my.mydomain.co$ RewriteRule ^(.*) https://%my.mydomain.ai/$1 R=301,L
考虑到您所发布的示例,这比实际需要的复杂。您的示例没有包含任何额外的子子域,那么为什么要在regex中允许这样做呢?您还有一个错误的%在存疑字符串中。
下面是所需的全部内容:
RewriteCond %{HTTP_HOST} ^(my\.domain)\.co [NC]
RewriteRule (.*) https://%1.ai/$1 [R=301,L]这条规则接近于.htaccess文件的顶部。
%1反向引用包含从前面的CondPattern捕获的my.domain -这只是为了避免重复。
您需要在测试之前清除浏览器缓存,因为浏览器将缓存任何错误的301 (永久)重定向。
首先使用302 (临时)重定向进行测试,以避免潜在的缓存问题。
https://stackoverflow.com/questions/69436874
复制相似问题