2014-02-06 150 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]