我已将我的网站的所有代码存储在mywebfolder
的文档根目录中。有许多子目录,例如mywebfolder/deals/..
mywebfolder/user/..
等等。我目前正在使用mydomain.com托管我的网站。
我希望不会在任何时候显示mywebfolder
,因为它是多余的,并且使我的网址不再需要更长时间且难以记住。我有一个mod_rewrite运行来完成这个,但只有当我去mydomain.com。 (即,它仅适用于文档根目录)。在我的000-default.conf文件中,我有以下内容:
RewriteEngine On
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/mywebfolder/
RewriteRule(.*) /mywebfolder/$1
</Directory>
据我所知,当我导航到mydomain.com时,我的条件只会进行重写。无论如何,我可以轻松地将这些内容推断到整个网站,因此当导航用户从未在URL中看到/mywebfolder/
时?或者我是否必须为每个目录创建一个目录块?
答案 0 :(得分:1)
试试这个:
...
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteRule /mywebfolder/(.*) /$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/mywebfolder/
RewriteRule /(.*) /mywebfolder/$1