Как установить корневой веб-сайт и скрыть app.php и app_dev.php в локальном хосте с помощью xampp и apache?

Я использую symfony на своем локальном компьютере для программирования. его адрес http://localhost/RTL/web/app_dev.php/secure_area.

Как я могу изменить этот адрес на http://localhost/secure_area?

Я имею в виду удаление RTL/web/app_dev.php.

Я использую xampp, apache и symfony 2.6.

другие адреса могут быть примерно такими:

http://localhost/RTL/web/app_dev.php/login    =>     http://localhost/login
http://localhost/RTL/web/app_dev.php/logout   =>     http://localhost/logout
http://localhost/RTL/web/app_dev.php/admin    =>     http://localhost/admin

person Alireza    schedule 13.12.2014    source источник
comment
если вы работаете в локальной среде, почему вы хотите удалить app_dev.php? В любом случае RTL/web просто удаляет директиву вроде этой: DocumentRoot "C:/xampp/htdocs/localhost/RTL/web"на вашем виртуальном хосте. PS: это обычная (и лучшая) практика удаления папок приложений из корневого каталога.   -  person gp_sflover    schedule 13.12.2014
comment
Спасибо. Если я хочу развернуть свое приложение, я должен использовать app.php вместо app_dev.php. Как это тоже убрать???   -  person Alireza    schedule 13.12.2014
comment
с некоторыми правилами перезаписи, как здесь. Помните, что вы не можете удалить, а только скрыть app.php из URL-адреса. Дайте мне знать, если это сработает, я напишу ответ позже.   -  person gp_sflover    schedule 13.12.2014
comment
спасибо @gp_sflover. это действительно помогло :)   -  person Alireza    schedule 14.12.2014


Ответы (1)


Соответственно комментариям.

RTL/web удаляется, добавляя директиву DocumentRoot "C:/xampp/htdocs/localhost/RTL/web" в файл вашего виртуального хоста в apache.

Затем вы можете скрыть app.php, используя эти правила apache mod_rewrite:

RewriteEngine On  
RewriteCond %{ENV:REDIRECT_STATUS} ^$  
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteRule .? - [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ app.php [QSA,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]    
RewriteRule .? %{ENV:BASE}app.php [L]

затем перезапустите сервер Apache, чтобы применить изменения.

person gp_sflover    schedule 14.12.2014