使用.htaccess重定向网址

时间:2014-02-06 07:17:40

标签: .htaccess symfony mod-rewrite

我相信很多人都会说这是重复的,但是我尝试了其他一些“问题”,并且没有为我工作。

问题是我将项目移动到Web服务器。 在这个服务器中,我有文件夹“public_html”,但我的项目是Symfony。 现在要进入我的项目,我必须写下以下网址:www.mydomain.com/Symfony/web/* 但我想写一个重写规则,它将从www.mydomain.com/Symfony/web/*重定向到 www.mydomain.com/home /*.

为了做到这一点,我尝试了两种不同的方式,包括许多ReWrite规则的组合。

  1. 在我的public_html中,我创建了一个.htaccess文件夹
  2. 我编辑Symfony / web文件夹中的.htaccess
  3. 我在两个文件中添加以下规则但没有成功

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

    它重定向我,但我再次收到对象未找到:( 我删除了public_html文件夹中的.htaccess,它是我服务器的根目录

    的public_html \ htaccess的

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

2 个答案:

答案 0 :(得分: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 :(得分:0)

我要走出去,说你的规则是倒退的。我想你希望你的URL在浏览器中是www.mydomain.com/home/* ...在这种情况下规则将被颠倒。此外,您的.htaccess应该在根目录中,并且您不需要在重写规则中包含域,因为您设置了重写基础。

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