我在使用.htaccess文件进行URL重写时遇到问题,问题如下。
当我将下面的代码放在服务器上的.htaccess文件中时
RewriteRule ^/?xyz http://google.com [R=301]
我在浏览器中调用了url MY_WEB_DOMAIN.COM/xyza,它将我重定向到google.com(正如预期的那样)
如果我拨打网址MY_WEB_DOMAIN.COM/xyz/abc我收到404错误..
是不是应该在这两种情况下重定向到谷歌? 我在我的模式中使用/(斜杠)来影响我的代码?
提前致谢。
答案 0 :(得分:1)
arkascha是对的。使用此:
RewriteRule ^/?xyz.* http://www.google.com [R=301]
> /?使第一个/可选,在这种情况下是一种asinine。但。*是你想要捕捉的任何东西匹配/ xyz -----
如果arkascha发布作为答案你应该接受它。 我测试了它,它工作正常。如果它不起作用,请检查htaccess中此规则之上的行。你可能有冲突。
答案 1 :(得分:0)
重写工作正常。
我在服务器端检查了重写URL的标头,并直接调用了url。 我发现只有一个变化。
在直接网址中它包含redirect_url和request_uri相同..对于重写网址两者都不同。 (我认为oxwall可能正在使用request_uri来处理..因为它不像我想要的那样......
所以我只是为php中的重写url做了同样的事情。通过放置线 $ _SERVER [ 'REQUEST_URI'] = $ _ SERVER [ 'REDIRECT_URL'];
完成了。 :)