Как указать URL для каталога?

240
user2666909

Мне нужно указать URL-адрес веб-как

http://example.com/subdir1 http://example.com/subdir2 

в тот же каталог

/var/www/vhosts/example.com/httpdocs/default/ 

на хостинге Linux (Ubuntu 16.04, Apache2) - как это сделать, пожалуйста? Может быть, это можно решить с помощью .httaccess? Если нет, есть ли другой вариант, пожалуйста?

1
Во-первых, какой из них является вашим каталогом webroot. Я предполагаю, /var/www/vhosts/example.com/httpdocs/, верно? Если это так, subdir1 и subdir2 находятся внутри httpdocs, а также в каталоге по умолчанию. Перенаправления могут быть сделаны либо через конфигурационный файл vhost, либо через htaccess. Вы можете использовать регулярные выражения, чтобы следовать некоторому правилу, когда нужно перенаправить некоторые каталоги в каталог по умолчанию. Erlis D. 6 лет назад 0
Спасибо за ваш анализ, на самом деле subdir1 и subdir2 не существует, они просто должны указывать на каталог / var / www / vhosts / ... Да, .htaccess будет идеальным - если вы можете дать мне какой-то пример, это будет отличный. user2666909 6 лет назад 0

1 ответ на вопрос

0
Erlis D.

Предполагая, что корневой веб-каталог находится в каталоге /var/www/vhosts/example.com/httpdocs/, и вам нужно перенаправить любой подкаталог в подкаталог «default», вам потребуется правило .htaccess, подобное следующему:

RewriteRule ^subdir.*$ /default/$1 [R=301,NC,L] 

Вы можете проверить свое правило htaccess на сайте, подобном следующему: http://htaccess.mwl.be/
То, что делает этот сайт, проверяет регулярное выражение, которое вы предоставили в первом блоке RewriteRule, и соответствующие результаты будет перенаправлен на путь, который вы хотите.

Имейте в виду, что приведенное выше правило может не всегда работать, в зависимости от конфигурации Apache.

Вы можете поиграть с другим выражением регулярного выражения, протестировав выражение на таких сайтах, как https://regex101.com/.

Также хорошим местом для изучения регулярных выражений является https://www.regular-expressions.info/

Спасибо за вашу работу, но это не то, что мне нужно. Ваш .htaccess перенаправляет subdir по умолчанию, но мне нужно остаться на subdir url и считывать данные и конфигурацию по умолчанию. У вас есть пример для этого, пожалуйста? user2666909 6 лет назад 0
Насколько я могу судить, это невозможно с apache, но вы можете прочитать больше здесь: https://httpd.apache.org/docs/2.4/urlmapping.html С помощью правил переписывания apache вы в основном перенаправляете каталог или URL например, чтобы он выглядел чище, но не получал содержимое другого каталога для разных URL-адресов. Erlis D. 6 лет назад 0
Это прекрасно работает в vhost.conf: Alias ​​/ subdir "/var/www/vhosts/example.com/httpdocs/default" как это сделать в htaccess, пожалуйста? user2666909 6 лет назад 0
Попробуйте RewriteRule ^ subdir (. *) $ / Default / $ 1 [R = 301, NC, L] Псевдоним не будет работать в .htaccess. Но если это работает в конфигурации Apache, я предлагаю вам использовать это. Это лучше, чем использование htaccess. Erlis D. 6 лет назад 1