我目前正在使用共享托管,无法将我的文件放在“public_html”文件夹之外。
要解决此问题,我想使用.htaccess文件中的以下脚本将我的“root”站点重写到子目录:
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1
除非我导航到 www.example.com/subdir / ,否则效果很好。该URL不会重定向到任何位置,它只显示子目录。这是相对网址等问题。
有没有办法继续将我的root重写到子目录,同时还将 www.example.com/subdir / 重写为 www.example.com ?
答案 0 :(得分:1)
您可以在root .htaccess中使用此规则:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteCond %{REQUEST_URI} !^/subdir/ [NC]
RewriteRule ^(.*)$ subdir/$1 [L]
并在/subdir/.htaccess
中使用此规则:
RewriteEngine On
RewriteBase /subdir/
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteCond %{THE_REQUEST} /subdir/(\S*)\s
RewriteRule ^ /%1? [R=302,L,NE]