【问题标题】:.HTACCESS RewriteRule not working as expected.HTACCESS RewriteRule 未按预期工作
【发布时间】:2015-08-23 03:42:14
【问题描述】:

我有一个 magento 网站,目前正在运行。在此站点的子文件夹中,我放置了一个第 3 方应用程序,该应用程序也有自己的 HTACCESS 文件来处理其应用程序的路由。

当我访问文件夹 http://example.com/somefolder 时,会出现我期望的屏幕,但是当我导航到 http://example.com/somefolder/newroute 时,我却进入了 magento 404 屏幕。

我已经将此追溯到 magento htaccess 文件,在所有情况下,除非路径物理存在,否则重写器将始终将请求发送到 index.php - 这解释了我到达那里的原因。

为了解决这个问题,我写了一个小重写器,我把它放在 magento 商店的 htaccess 文件中。目标是为通过并包含对我的子文件夹的任何引用的任何请求添加例外。现在的想法是它应该点击它应该的路径,然后点击htaccess文件,然后将我路由到IM应该在这个其他应用程序中的位置。不幸的是,它似乎不起作用,添加规则后我最终在同一个地方 - magento。

这是我写的:

RewriteRule ^(.*somefolder.*)$ $1 [L]

我不确定可能出了什么问题,因为我认为这种方法看起来很简单。关于如何补救这种情况的任何想法?

谢谢。

【问题讨论】:

    标签: php apache .htaccess magento mod-rewrite


    【解决方案1】:

    这是您的简单答案。我也在我的网站上使用过。

        RewriteCond %{REQUEST_URI} !^/(yourfoldernameHERE)$
    

    【讨论】:

    • 这似乎对我不起作用。我也尝试了两种变体,但没有成功。无论我做什么,我最终都会出现在单曲屏幕上。我的想法开始让我觉得我们作为 apache 前端的 nginx 反向代理可能会造成一些干扰,但我对 nginx 知之甚少。
    • 经过一番折腾后,我把它修好了。您的解决方案是正确的,我只是忽略了子目录 htaccess 文件上的 rewritebase 指令。一旦我将它设置到正确的目录,它就会变得栩栩如生。
    • 很高兴听到这个消息并乐于提供帮助:)。
    • 感谢您的帮助!
    猜你喜欢
    • 2018-02-27
    • 2015-03-25
    • 1970-01-01
    • 2015-03-15
    • 2015-04-03
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多