我的问题是我买了一个糟糕的主机,现在我无法设置自己的配置。我需要通过.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
,如果有人知道怎么做的话?
我曾经在共享托管服务上安装过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>
在/web/.htaccess中我写道:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
仅此而已。。。
也许是PHP头函数?
<?php header("Location: http://www.example.com/"); exit; ?>
PHP:头