我有一个URL mydomain.com/abc/xyz我想把它重定向到mydomain.com/def
现在,我还想将mydomain.com/abc/xyz URL重写为mydomain.com/def,这意味着如果有人打开mydomain.com/def,它应该打开mydomaincom/abc/xyz-的内容
我尝试过重定向和重写,它们都是单独工作的,但没有结合起来。
这是代码
RewriteRule ^abc/xyz/ http://mydomain. com/def [L,R=301]
RewriteRule ^/def /abc/xyz [NC,L]
简单地说,让我们考虑URL1=mydomain.com/abc/xyzURL2=mydomain.com/def
我想要URL2作为漂亮的URL,并且应该打开URL1的内容但是如果有人打开URL1,我希望他们重定向到URL2并显示URL1的内容
所以,首先重定向,然后使用重写规则显示内容。
我想知道重写规则是否真的是单独工作的。。。你说你在用一个";。htaccess";文件,因此是一个分布式配置文件。当在这样的位置实现重写规则时(与http服务器的中央配置相反(,重写规则中的匹配模式应用于相对路径。如果你仔细想想,并且有明确的记录,这实际上是很有意义的。这意味着你的匹配模式永远不会匹配。。。
无论您是在分布式配置文件中还是在中央配置文件中实现这些规则,这里都有一个稍微修改过的版本,它也能正常工作:
RewriteEngine on
RewriteRule ^/?abc/xyz/ https://example.com/def [L,R=301]
RewriteRule ^/?def /abc/xyz [NC,L]
最有可能的是,你也想更精确一点:
RewriteEngine on
RewriteRule ^/?abc/xyz/?$ https://example.com/def [L,R=301]
RewriteRule ^/?def/?$ /abc/xyz [NC,L]