我的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>
答案 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服务。
看看这个问题(及其答案) - 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替换为此版本。