2014-02-06 104 views
0

我確定很多人會說這是重複的,但我嘗試了其他「問題」和無效的所有內容。使用.htaccess重定向網址

問題是我將我的項目移動到Web服務器。 在這臺服務器我有文件夾「public_html」,但我的項目Symfony。 現在進入我的項目,我必須寫下列網址:www.mydomain.com/Symfony/web/* 但我想寫一個重寫規則,將重定向從www.mydomain.com/Symfony/web/*到 www.mydomain.com/home/*。

要做到這一點,我嘗試了2種不同的方式,結合使用許多重寫規則。

  1. 在我的public_html我創建了一個文件夾的.htaccess
  2. 我的Symfony/web文件夾編輯的.htaccess

我在這兩個文件中,但沒有成功添加以下規則

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

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

不幸的是沒有成功。我在做什麼錯了?


我htaccess文件看起來像

而且所有未找到

的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> 

它`重定向我,但我收到的時間錯誤404對象再次找不到對象:( 我刪除public_html文件夾中的.htaccess文件夾,這是我的服務器的根文件夾

的public_html \ htaccess的

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

您是否啓用了mod_rewrite? – 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

不錯的一個anubhava – andrew

+0

它沒有工作:(不幸的是,當我從/Symfony/web/.htaccess中刪除所有內容並刪除public_html中的.htaccess。它將我從www.mydomain重定向。 com/Symfony/web/*到www.mydomain.com/home/*但我收到錯誤404「Object not found!」 – Kosmonaft

+0

立即嘗試更新回答。 – anubhava

0

I」我會出去肢體,並說你的規則是b ackwards。我想你想在瀏覽器中將你的URL設爲www.mydomain.com/home/* ......在這種情況下,規則將被顛倒。此外,您的.htaccess應該位於根目錄中,因爲您設置了重寫基礎,所以不需要在重寫規則中包含該域。

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