Как бы переписать URL, такие как:мод-переписывают раздеть подкаталог в .htaccess
http://www.site.com/sub-directory/page-name
в
http://www.site.com/page-name
?
Как бы переписать URL, такие как:мод-переписывают раздеть подкаталог в .htaccess
http://www.site.com/sub-directory/page-name
в
http://www.site.com/page-name
?
Я считаю, что ваше предполагаемое решение использует Virtual Hosts, но если у вас нет доступа к httpd.conf, вы можете попробовать следующие правила перезаписи:
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} =host1.example.com
RewriteCond %{REQUEST_URI} !^/host1-dir
RewriteRule ^(.*) host1-dir/$1 [L]
RewriteCond %{HTTP_HOST} =host2.example.com
RewriteCond %{REQUEST_URI} !^/host2-dir
RewriteRule ^(.*) host2-dir/$1 [L]
RewriteCond %{HTTP_HOST} =host3.example.com
RewriteCond %{REQUEST_URI} !^/host3-dir
RewriteRule ^(.*) host3-dir/$1 [L]
# If doesn't match any of it then 404 Not Found or anything you like
RewriteCond %{HTTP_HOST} =host1.example.com
RewriteCond %{HTTP_HOST} =host2.example.com
RewriteCond %{HTTP_HOST} =host3.example.com
RewriteRule .* - [R=404,L]
IIRC mod_rewrite поддерживает регулярное выражение, так что вы можете использовать его заменить:
^(.*/)[^/]*&
В круглых скобках соответствуют всем до последних /
.
Тогда вы повторно используете его, используя групповую ссылку, я думаю, что это $1
. Остальное отбрасывается.
Проверить mod_rewrite помощь по использованию регулярного выражения.
ответ зависит от того, хотите ли вы ** каждый «sub-dir» ** должен быть удален или только когда файл существует –
Да, я бы хотел, чтобы каждая первая вспомогательная директория была удалена. Например, если текущий путь - http://www.site.com/sub-directory/sub-sub-directory/page-name, мне бы хотелось http://www.site.com/sub-sub-directory/page -name – Fraser
является 'подкаталогом 'статическим каталогом? Если нет, как бы вы справлялись с именованием конфликтов? –