如何使用.htaccess文件修改$ base_url,$ live_site?

时间:2013-11-19 18:16:57

标签: .htaccess symfony subdirectory base-url

我的问题是我买了一个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错误。

1 个答案:

答案 0 :(得分:0)

我是通过公共直接设置.htaccess文件来完成的,如下所示:

SetEnv PHP_VER 5_4
SetEnv REGISTER_GLOBALS 0
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /Project/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 ^(.*)$ Project/web/app.php/$1 [QSA,L]
</IfModule>

并在想要的子目录中全部重定向我设置.htaccess文件如下:

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

通过这样做,我不必担心改变所有路由并修改$ base_url或$ live_site。