更改public_html目录.htaccess

时间:2012-10-05 12:02:15

标签: apache .htaccess directory

我的public_html文件夹是/domain.com/public_html/,但我希望htaccess将它们重定向到文件夹/ domain / public_html / www /,但仍然将domain.com作为域而不是domain.com/www。

编辑: 我希望public_html中的子文件夹www是默认的根,而不是public_html本身

对此有何解决方案?

这是我目前的htacess

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
<IfModule mod_rewrite.c>
    RewriteEngine On    
    RewriteRule ^(.*)$ www/$1 [NC,L]
</IfModule>

2 个答案:

答案 0 :(得分:3)

如果你只能去.htaccess,这个简单的人应该这样做;

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/www/
RewriteRule ^(.*)$ /www/$1 [QSA]

解释

RewriteEngine on                      # Turn on mod_rewrite functionality
RewriteCond %{REQUEST_URI} !^/www/    # Don't rewrite requests that are 
                                      # already to the /www/ directory. 
                                      # If this isn't here, we'll go into
                                      # a neverending loop.
RewriteRule ^(.*)$ /www/$1 [QSA]      # Rewrite all else to the www subdirectory
                                      # QSA = keep the query string.

编辑:没有看到你现有的htaccess,这个(减去冗余的RewriteEngine语句)可能应该在最后而不是整个IfModule块。

答案 1 :(得分:0)

尝试将其放在public_html文件夹中的htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On    
    RewriteRule ^(.*)$ www/$1 [NC,L]
</IfModule>

编辑apache配置(httpd.conf

vi /usr/local/apache/conf/httpd.conf

并将域的DocumentRoot设置为

DocumentRoot /home/user/public_html/www

保存文件并重新启动httpd服务。

OR(重新编排)

看看这个问题(及其答案) - https://stackoverflow.com/a/5891858/1361042

修改

使用此HTACCESS:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/www/
    RewriteRule ^(.*)$ www/$1 [NC, QSA]
</IfModule>

请勿将其添加到您的手中,但请将此htaccess替换为此版本。