【发布时间】: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