【问题标题】:how do i hide /magento/ in my site's url?我如何在我的网站的网址中隐藏 /magento/?
【发布时间】:2011-01-24 00:28:58
【问题描述】:

一个站点有一个现有的系统(我们称之为 mysite) 并且客户要求放入magento。

我的目录结构是这样的:

ROOT       
   -index.php (this is the app's main controller)
   -.htaccess
   /blog (runs wordpress)
   /assets (current system's media folder)
   /magento (this is where all magento files go)

问题是如果我设置 magento 并在安装中指定基本 URL 为 http://example.com,magento 会加载 mysite

让我别无选择,只能将基本 URL 设置为 http://example.com/magento/ 设置 magento,它运行完美。 然而,客户希望我感觉很糟糕,并要求我在 URL 中隐藏 magento。

我并不真正精通 .htaccess,而且我只知道简单的重写代码,所以我尝试将任何以 /magento 开头的 HTTP 请求转发到 magento 文件夹并提出:

RewriteCond %{REQUEST_URI} !^/magento(.*)
RewriteRule (.*) /magento/$1 [L]

就在我认为它正在工作时,mysite 链接都变得无法访问并转发到显示它的 404 页面的 magento 系统。

那么,嗯,我可以请求帮助如何构建 .htaccess 以隐藏 URL 上的 /magento/ 而不会影响当前系统,即 mysite

【问题讨论】:

  • 我认为这取决于您当前的系统 mysite。如果它还使用重写技术,则无法区分哪些请求应重定向到哪个系统(mysite 或 magento)。那么您的系统 mysite 是什么样的?如何处理请求?
  • 那么根目录中的当前 htaccess 就是这个 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA] 这样任何东西未找到的被转发到根目录的索引...

标签: php .htaccess mod-rewrite magento


【解决方案1】:

从我看到的问题来看,您将无法完全隐藏 magento 并同时使用您的网站。

如果您希望 Magento 在公共文件夹的根目录中,您应该将 virtualHost 指向您的 magento 安装,但这会让您的博客和您的主控制器脱离公共视图。这与您通过将 .htaccess 中的所有调用重定向到 magento 文件夹所做的操作或多或少相同。

我建议将 magento 名称更改为更匿名的名称,例如“shopping”或“cart”,并记住文件夹重命名比 .htaccess 文件更可取,因为它的安全性和性能。

【讨论】:

    【解决方案2】:

    因为你有现有的应用程序关闭 webroot,你不能使用 nothing 代替:

    ### webroot/.htaccess
    RewriteRule ^whatiwanttouseinsteadofmagento/(.*)$ magento/$1 [L]
    

    【讨论】:

      【解决方案3】:

      我们来看看:

      RewriteCond %{REQUEST_URI} !^/magento(.*)
      

      所以我们说条件是任何不是 /magento(.*) 的东西,所以除了那个目录之外的所有东西?这将重定向所有内容,包括您的博客、资产和任何其他目录。

      如果不指定需要重定向到 magento 目录的每个文件,确实没有简单的方法可以做到这一点。我想您可以将任何不包含“/”并以扩展名 .php 结尾的文件重定向到 magento 目录。这样,只有 web 根目录中的文件才会重定向到 magento,但如果您使用 magento 目录中的其他目录,您仍然需要为它们添加单独的规则。

      【讨论】:

        【解决方案4】:

        这个答案来得很晚,但我猜你想要类似的东西

        RewriteCond %{REQUEST_URI} !^/(blog|assets|magento)(.*)$
        RewriteRule ^(.*)$ /magento$1 [L]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-11
          • 2015-11-30
          • 2019-04-06
          • 1970-01-01
          • 2016-07-21
          • 2012-12-12
          相关资源
          最近更新 更多