Используйте htaccess для маскировки домена и имени папки
Я пытаюсь использовать htaccess и mod_rewrite, чтобы замаскировать один домен и две его подпапки с другим доменом. Например: http://example.com/sub/sub-sub/
в http://example-2.com/
Чтобы http://example-2.com/
это то, что отображается в адресной строке браузера, но содержание http://example.com/sub/sub-sub/
это то, что отображается на странице.
Я нашел этот вопрос / ответ, который должен выполнить это, но он не работает, когда я его реализую.
Текущий htaccess:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+) [NC]
RewriteRule .* http://example.com/sub/sub-sub/%1 [L]
Options -Multiviews
Вот вид моего каталога:
2 ответа
Вам не нужно убегать -
, кроме как внутри класса персонажа. И даже там вы можете оставить его в качестве первого или последнего символа.
В RewriteRule шаблон проверяется по URL-пути, а не по домену. Если вам нужно протестировать домен, вы можете использовать RewriteCond
RewriteCond %{HTTP_HOST} !example-2.com
RewriteRule ^/?sub/sub-sub/(.*) http://example-2.com/$0 [R,L]
RewriteCond %{HTTP_HOST} example-2.com
RewriteCond %{REQUEST_URI} !^/?sub/sub-sub
RewriteRule .* sub/sub-sub/$0
Вы можете попробовать это:
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/sub/sub-sub [NC]
RewriteCond %{REQUEST_URI} ^/(.*) [NC]
RewriteRule .* http://example.com/sub/sub-sub/%1 [L]
Перенаправляет навсегда
http://example-2.com/anything
Для того, чтобы:
http://example.com/sub/sub-sub/anything
Предполагается, что все строки являются фиксированными, кроме пути сегмента anything
,
Для постоянного видимого перенаправления замените [L]
с [R=301,L]
,
Приведенный выше набор правил должен быть включен в один файл.htaccess в http://example-2.com
корневая директория.
ОБНОВИТЬ:
Чтобы пропустить правило для любого входящего URL-адреса без пути, например, http://example-2.com/
замените эту строку:
RewriteCond %{REQUEST_URI} ^/(.*) [NC]
с этим:
RewriteCond %{REQUEST_URI} ^/(.+) [NC]