我在一个运行在Apache服务器上的网站上工作。PHP工厂生成并获取如下URL:
site.com/page/view/[id]/[vanity-url]但是,客户端希望从视图中隐藏URL的一部分,因此在浏览器中它显示为:
site.com/[vanity-url]服务器仍然需要查看完整的URL。
经过几个小时的搜索,我尝试了各种RewriteRules,最接近的结果似乎是:
RewriteRule ^page/view/(.*)/(.*)$ /$2 [R,L]...but看起来什么都没做。我确信我的.htacces工作正常。
我做错了什么?
发布于 2016-04-30 16:02:41
不幸的是,这是不可能的。让我解释一下原因:
您声明服务器需要查看完整的URL。具体地说,这包括id部分,我确信你的框架需要它(如果服务器只需要看到虚荣部分,它就不需要它了)。您提供的代码将完整URL重定向到虚URL,从而使服务器在下一个请求中看不到完整URL。
因此,导航到/page/view/2/about-us将重定向到/about-us,并且地址栏将更改以反映这一点。这会导致一个新的请求被发送到服务器,其中只包含/about-us的虚URL。
因此,您需要将vanity URL重写回完整的URL (不进行重定向,以便/about-us按原样保留在地址栏中),但您不能这样做,因为vanity URL不包含id段,这似乎是框架提供正确响应所必需的。请记住,Apache无法猜测该特定虚URL的ID。
https://stackoverflow.com/questions/36946336
复制相似问题