由于路由器的限制,我需要将api/mobile/3/*链接重写为api/mobile/v3/* ,我们正在对现有的代码库进行现代化(路径不能以数字开头,因为它们映射到php名称空间)

如果将R标志添加到api重写中,则以下工作有效-因为其中将我重定向到正确的位置。

无法进行重定向,因为使用此API的现有应用不会遵循重定向

# make sure mod_rewrite is ON
    RewriteEngine On

# rewrite api 3 to v3
    RewriteRule ^api/mobile/3/(.*) api/mobile/v3/$1 [QSA]

# send other requests to the application
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule .* /index.php [QSA,L]

当我删除前端控制器调用时,Apache给我一个404到我想要的正确 v3路径,因此我怀疑问题出在第一个RewriteRule和第二个RewriteRule的组合中。

我在写这篇文章时意识到这可能是因为重写只会更改要执行的文件,而不是SERVER变量。

有什么办法让Apache重写传递给前端控制器的内容以使其工作?

  ask by donatJ translate from so

本文未有回复,本站智能推荐:

2回复

使用.HTaccess进行URL重定向和重写

一段时间以来,我一直在研究使用.htaccess ,以使网站上的URL更加用户友好。 但是,在浏览了互联网上无穷无尽的信息流之后,我似乎找不到一种用简单的英文解释命令的工作方式来进行以下操作的方法。 我的托管服务提供商的技术支持团队建议我咨询专业的Web开发人员,因此我认为这里是一个很好
1回复

使用.htaccess重写重定向URL的规则

我正在使用.htaccess重定向我网站上的URL,以避免出现诸如page1.php之类的链接。 我打算在根域上使用子文件夹engine/index.php来处理重定向的URL。 例如,我希望链接localhost/user重写为localhost/engine/index.php?vi
2回复

使用htaccess重定向和重写多个URL

我正在尝试重定向和重写以下URL,但在某些情况下,我想保留一些值,但对URL隐藏。 这是我想要获得的示例: 我有以下网址: www.mysite.com/?a=blue www.mysite.com/?a=red 等等 www.mysite.com/?a=orang
2回复

URL重写(SLUG)和URL重定向(htaccess)

下面是我的PHP代码(qs.php)。 此文件包含url链接。 使用SLUG创建的漂亮链接。 上面的链接显示如下 - http://localhost/qs/qs1/12345678/slug-text-testing-purpose-only 编辑 QS是放置所有文件的目录。
1回复

使用.htaccess的URL重写/重定向/多个条件限制

服务器版本:Apache / 2.4.18(Win32)OpenSSL / 1.0.2e PHP / 7.0.8 我意识到这个问题已经问了无数次了,虽然我有一些零件的解决方案,但是我没有一个所有运动的零件都能正常工作的解决方案。 我有4种url 首先...(索引文件重定向) ht
1回复

使用htaccess将页面重定向到url重写中的索引页面

嗨,我是url重写的新手,请帮助解决此错误 我上面的代码显示了有关.htaccess文件的信息。 我的原始网址是www.abcd.com/chanel.php?user=ravi 我想将网址上方的内容改写到www.abcd.com/ravi但将.htaccess文件上方的内容重定向到
2回复

使用htaccess重定向/重写

我刚刚开始学习.htaccess,并且当当前URL中不包含某些内容和/或看起来不像时,我似乎无法理解如何重定向到该URL。 例如: 有人试图访问www.example.com/contact.php。 但是我的htaccess表示,每个非www.example.com或不包含'?pag
1回复

.htaccess重定向而不是重写

我的htaccess文件看起来像 预期的结果是http://example.com/companies/partners-in-USA ...但是,它不是重定向到http://example.com/companies/country.php?country=USA 我的htaccess