как мне спрятать / magento / в URL моего сайта? - PullRequest
0 голосов
/ 05 марта 2010

На сайте уже существует система (назовем ее 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 .

Не оставляет мне выбора, кроме как настроить magento с базовым URL-адресом, установленным на http://example.com/magento/, и он работает отлично. Однако клиент хочет, чтобы я чувствовал себя адом, и просит скрыть magento в URL.

Я не очень разбираюсь в .htaccess и знаю только простые коды перезаписи, поэтому я попытался перенаправить любые HTTP-запросы, начинающиеся с /magento, в папку magento и нашел:

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

Как раз когда я подумал, что это работает, mysite ссылки стали недоступны и перешли к системе magento, отображающей ее страницу 404.

Итак, я могу попросить помощи, как сконструировать .htaccess, чтобы скрыть /magento/ в URL, не влияя на текущую систему, известную как mysite ?

Ответы [ 4 ]

3 голосов
/ 05 марта 2010

Поскольку у вас есть существующие приложения вне webroot, вы не можете использовать ничто вместо:

### webroot/.htaccess
RewriteRule ^whatiwanttouseinsteadofmagento/(.*)$ magento/$1 [L]
1 голос
/ 05 марта 2010

Давайте посмотрим на это:

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

Итак, мы говорим, что условием является все, что не является /magento(.*), так что все, кроме этого каталога?Это перенаправит все, включая ваш блог, ресурсы и любые другие каталоги.

Без указания каждого файла, который необходимо перенаправить в каталог magento, на самом деле не существует простого способа сделать это.Я полагаю, вы можете перенаправить любой файл, который не содержит «/» и заканчивается расширением .php в каталог magento.Таким образом, только файлы в корневом веб-каталоге будут перенаправлены в magento, но если вы использовали другие каталоги в каталоге magento, вам все равно нужно добавить для них отдельные правила.

1 голос
/ 05 марта 2010

Судя по тому, как я вижу проблему, вы не сможете полностью спрятать magento и одновременно использовать свой сайт.

Если вы хотите, чтобы Magento находился в корне общедоступной папки, вам нужно просто указать virtualHost для вашей установки magento, но это позволит вашему блогу и вашему главному контроллеру выйти из публичного просмотра. Это примерно так же, как и при перенаправлении всех вызовов в .htaccess в папку magento.

Я предлагаю изменить имя magento на что-то более анонимное , например "shopping" или "cart", и помните, что переименование папки предпочтительнее файла .htaccess с точки зрения безопасности и производительности. .

0 голосов
/ 10 октября 2010

этот ответ приходит очень поздно, но я думаю, вы хотели что-то вроде

RewriteCond %{REQUEST_URI} !^/(blog|assets|magento)(.*)$
RewriteRule ^(.*)$ /magento$1 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...