2016-11-16 3 views
1

У меня есть тест на папку. Если человек переходит к тесту папки, я хочу, чтобы браузер отображал новый..htaccess RewriteRule папка перенаправления php другому

Папка new не существует на сервере, я просто хочу, чтобы она отображалась как новая, которая на сервере связана с тестом на папку.

Это мой конфиг (HTTPD-vhosts.conf):

<VirtualHost server.com> 
    DocumentRoot "c:/www/" 
    ServerName server.com 
    Alias /new "c:/www/test" 
    <Directory "c:/www/"> 
     Options +Indexes +Includes +FollowSymLinks +MultiViews 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 

Таким образом, чтобы быть ясным, если кто-то переходит на:

  • server.com/test (сервер использует папку test, но server.com/new показан в браузере.
  • server.com/ (то же, что указано выше => server.com/new показано в браузере)
  • server.com/index.php (сервер использует index.php из папки t est, браузер показывает server.com/new/index.php
  • server.com/test/index.php (то же, что указано выше)
  • server.com/test/folder2/index.php?variable=1 (сервер использует index.php из папки test/folder2 и передает переменные в файл php. браузер показывает server.com/new/folder2/index.php?variable=1)

Я пробовал разные .htaccess перезаписывать, но я не могу заставить его работать.

Возможно, мне не нужно использовать псевдоним?

Не просто дать мне ссылку на руководство апача, потому что я читал, но не могу заставить его работать ...

ответ

1

Вам не нужно Alias для это так закомментировать:

Alias /new "c:/www/test" 

Тогда эти правила:

<VirtualHost server.com> 
    DocumentRoot "c:/www/" 
    ServerName server.com 

    <Directory "c:/www/"> 
     Options +Indexes +Includes +FollowSymLinks +MultiViews 
     AllowOverride All 
     Require all granted 
    </Directory> 

    DirectoryIndex index.php 
    RewriteEngine On 

    RewriteRule ^/?$ /new/ [L,R=301] 

    RewriteCond %{THE_REQUEST} \s/+test(\S*)\s [NC] 
    RewriteRule^/new%1 [R=301,NE,L] 

    RewriteRule ^/?new(/.*)?$ /test$1 [L,NC] 

</VirtualHost> 
+0

Я нахожусь в другом часовом поясе, чем вы, я думаю, очень жаль для моего позднего ответа. Я тестирую его, но я думаю, что я все еще делаю что-то неправильно. Я проверю его еще немного, а потом дам вам знать. Я получаю 500 ошибок. –

+0

Yay, это сделал трюк! Только если я перейду на сервер.com, он еще не перенаправит меня на server.com/new. Должно быть Btw R = 301? Это означает постоянную переадресацию. И мне не нужно добавлять QSA (добавить строку запроса из запроса на замещенный URL) тоже? –

+1

ok попробуйте мои обновленные правила снова – anubhava

Смежные вопросы