如何使用.htaccess重定向路由

时间:2013-11-21 12:49:12

标签: php .htaccess symfony redirect routing

我的问题是我买了一个shity主机,现在我无法设置我自己的配置。 我需要通过.htaccess文件来完成。 以下是我设法做的事情:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/Project/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Project/web/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ Project/web/app.php [L]

我知道这不适用于像我这样的网站软件。我还需要修改$ base_url,$ live_site或其他配置设置以完成此过程。

当我进入我的域时,使用此设置全部清除我从子选择开始我选择。但当我尝试去另一个页面时,它返回404错误。

我知道如何使其工作,还需要重定向路由 例如,如果有人知道怎么做,www.domain.com/page需要重定向到www.domain.com/Project/web/page

2 个答案:

答案 0 :(得分:1)

我在共享主机服务上安装了一次symfony。

这就是我为使Symfony工作所必须做的事情:

在公共目录中有项目的结构:

/app
/src
/vendor
/web/.htaccess
/.htaccess

在/.htaccess中我写道:

SetEnv PHP_VER 5_3
SetEnv REGISTER_GLOBALS 0

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /web

   RewriteCond %{REQUEST_URI} \.(css|gif|ico|jpg|js|png|swf|txt|pdf|doc|docx|mp3|svg)$
   RewriteRule ^(.*)$ $1 [QSA,L]

   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.*)$ web/app.php/$1 [QSA,L]
 </IfModule>
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

这就是......

答案 1 :(得分:0)

也许PHP头功能?

<?php header("Location: http://www.example.com/"); exit; ?>

PHP: header