Итак, у меня есть эта проблема:.htaccess RewriteRule в путь без изменения URL
- Base Сайт, расположенный на
http://example.com/
- Второй сайт расположен на
http://example.com/web2/
- Люди делая различные запросы на второй сайт, как
http://example.com/myWeb/pg1
иhttp://example.com/web2/pg2
в последнее время из-за некоторых других проблем, мне нужно иметь пользовательский новый погладить ч для второго веб-сайта, но и сохранить первую работу.
Ideia, чтобы позволить пользователям получить доступ ко второму веб-сайт по двум следующим адресам:
http://example.com/web2/
http://example.com/alternative-url-web2/
Папка /web2/
фактически существует на сервере, но как может Я имитирую папку /alternative-url-web2/
и «перенаправляет» запросы на /web2/
?
Обратите внимание: я не хочу, чтобы URL-адрес в браузере менялся, это должно быть «молчаливое перенаправление». И также я уверен, что все остальные запросы, такие как http://example.com/other
, не перенаправляются на второй веб-сайт.
спасибо.
Update:
По @anubhava я мог бы просто решить эту проблему, добавив в моей .htaccess
:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase/
RewriteRule ^alternative-url-web2(/.*|)$ /web2$1 [L,NC]
Это, вероятно, работает нормально, но я заметил следующее:
http://ex.com/alternative-url-web2
is re направленный наhttp://ex.com/web2/
(изменение URL-адреса браузера);http://ex.com/alternative-url-web2/
перенаправлен наhttp://ex.com/
(сменить URL-адрес браузера);http://ex.com/alternative-url-web2/someRequest
работает нормально и НЕ меняет URL-адрес браузера;http://ex.com/alternative-url-web2/index.php
работает нормально и не меняет URL-адрес браузера;
сайт Примечание:
В /web2/
есть более .htaccess
что может быть причиной проводного поведения перенаправлять выше ... Так вот содержимый файл:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
Может внутренний RewriteRule до index.php
будет вызывать все это? Если да, как я могу это исправить?
По какой-то причине 'http: // ex.com/alternative-url-web2' перенаправляется на' http: // ex.com/web2/'и изменяется URL-адрес браузера. И ... 'http: // ex.com/alternative-url-web2 /' перенаправляется на 'http: // ex.com /'. – TCB13
Но, 'http: // ex.com/alternative-url-web2/someRequest' правильно« перенаправляется »на' http: // ex.com/someRequest' без изменения URL-адреса в браузере. – TCB13
Ваш первый код в порядке, проблема, похоже, является другим файлом .htaccess в каталоге 'web2'. (Пожалуйста, проверьте оригинальный вопрос). – TCB13