2014-02-06 2 views
0

Я уверен, что многие люди скажут, что это дублируется, но я стараюсь, чтобы все, от других «Вопросов» и т. Д., Работало для меня.URL-адрес перенаправления с .htaccess

Проблема в том, что я переношу свой проект на веб-сервер. На этом сервере у меня есть папка «public_html», где я, но мой проект Symfony. Теперь, чтобы войти в мой проект, я должен написать следующий URL: www.mydomain.com/Symfony/web/* Но я хочу написать правило перезаписи, которое будет перенаправляться с сайта www.mydomain.com/Symfony/web/* www.mydomain.com/home/*.

Для этого я стараюсь использовать два разных способа с помощью комбинации правил ReWrite.

  1. В моем public_html создать папку .htaccess
  2. Я редактировать .htaccess в/веб-папки Symfony

добавить следующее правило в обоих файле, но без успеха

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^Symfony/web/(.*)$ www.mydomain.com/home/$1 [L,R=301] 

К сожалению, без успеха. Что я делаю неправильно?


Мой файл .htaccess выглядеть

И все время Ошибка 404 Объект не найден

Symfony/веб/.htaccess

DirectoryIndex app.php 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /Symfony/web/ 

RewriteCond %{THE_REQUEST} \s/+Symfony/web/ [NC] 
RewriteRule ^(.*)$ /home/$1 [L,R=301] 

RewriteRule ^home/(.*)$ $1 [L,NC] 

</IfModule> 

It`s перенаправляет меня, но я получаю снова Объект не найден :( Я удаляю .htaccess в папке public_html, которая является корневой для моего сервера

public_html \ .htaccess

RewriteEngine On 
RewriteRule ^home/(.*)$ /Symfony/web/$1 [L,NC] 
+0

У вас есть mod_rewrite enabled? – randomizer

+0

Да, у меня есть включен – Kosmonaft

ответ

2

1: Поместите этот код в /Symfony/web/.htaccess:

RewriteEngine On 
RewriteBase /Symfony/web/ 

RewriteCond %{THE_REQUEST} \s/+Symfony/web/ [NC] 
RewriteRule ^(.*)$ /home/$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ app.php [L] 

2: Поместите этот код в /public_html/.htaccess:

RewriteRule ^home/(.*)$ /Symfony/web/$1 [L,NC] 
+1

nice one anubhava – andrew

+0

Это не работает :(К сожалению, когда я удаляю все из /Symfony/web/.htaccess и удаляю также .htaccess из public_html. Он перенаправляет меня на www.mydomain. com/Symfony/web/* на www.mydomain.com/home/*, но я получаю ошибку 404 «Объект не найден!» – Kosmonaft

+0

Попробуйте обновить ответ. – anubhava

0

Я m собирается выйти на конечность и сказать, что ваше правило - b Ackwards. Я думаю, вы хотите, чтобы ваш URL-адрес был www.mydomain.com/home/* в браузере ... В этом случае правило будет отменено. Кроме того, ваш .htaccess должен находиться в корне, и вам не нужно включать домен в правило перезаписи, потому что вы устанавливаете базу перезаписи.

RewriteRule ^home/(.*)$ Symfony/web/$1 [L,R=301] 
Смежные вопросы