Php 如何使用.htacces重定向路由

Php 如何使用.htacces重定向路由,php,.htaccess,symfony,redirect,routing,Php,.htaccess,Symfony,Redirect,Routing,我的问题是我买了一个糟糕的主机,现在我不能设置自己的配置。 我需要用.htaccess文件来做。 以下是我设法做到的: RewriteEngine on RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ RewriteCond %{REQUEST_URI} !^/Project/web/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^

我的问题是我买了一个糟糕的主机,现在我不能设置自己的配置。 我需要用.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\u url、$live\u site或其他配置设置来完成这个过程

当我进入我的域时,为了让这些设置更清楚,我从我选择的子目录开始。但当我尝试转到另一个页面时,返回404错误

我有一个想法如何使它工作,它需要重定向也路由
因此,例如
www.domain.com/page
需要重定向到
www.domain.com/Project/web/page
,如果有人知道怎么做?

可能是PHP头函数

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


我曾经在共享主机服务上安装过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>
SetEnv PHP第5版第3版
SetEnv寄存器\u全局0
重新启动发动机
重写数据库/网络
重写cond%{REQUEST|URI}\(css | gif | ico | jpg | js | png | swf | txt | pdf | doc | docx | mp3 | svg)$
重写规则^(.*)$$1[QSA,L]
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$web/app.php/$1[QSA,L]
在/web/.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>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$app.php[QSA,L]

仅此而已……

它对我不起作用,我在另一个名为project的文件夹中有你提到的结构,比如说
public directory/project/…
,我在public directory中也有提到。访问方式如下:
SetEnv PHP\VER 5\u 4 SetEnv REGISTER\u GLOBALS 0 RewriteEngine On RewriteBase project/web RewriteCond%{REQUEST\u URI}\。(css | gif | ico | jpg | js | png | swf | txt | pdf | docx | mp3 | svg)$RewriteRule^(.$1[QSA,L]RewriteCond%{REQUEST(u FILENAME}f RewriteRule^(.*)$Project/web/app.php/$1[QSA,L]
页面:
内部服务器错误
和来自日志代码>[2013年11月18:21][234]/public\u html/.htaccess:RewriteBase:argument不是有效的URL是的,您的文件中缺少第一个/RewriteBase/Project/webok它现在已经修复了:但是在我的
/Project/
中,我还有一个.htacces文件,其中包含
拒绝所有人
它不允许存在吗?
[2013年11月21日星期四20:08:41][error][client 156.13.234.244]客户端被服务器配置拒绝:/home/sl129581/public_html/Project/web/Project
。因为如果我删除它,我不确定它是否有效,但如果你拒绝所有“/Project/”我认为你的用户无法访问“/Project/web”…你能删除它吗?安全性是递归的