【发布时间】:2016-12-04 17:25:55
【问题描述】:
我的网站的所有代码都存储在我的文档根目录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/?还是我必须为每个目录创建一个目录块?
【问题讨论】:
-
您的 .conf 看起来不错,但不清楚什么没有按预期工作。能否给出示例的完整网址?
-
@DusanBajic 这仅适用于我第一次访问我的域时。所以我导航到 www.mydomain.com` 并转到我的启动页面,该页面位于 mydomain.com/mywebfolder/ 目录中,并且在 URL 中不显示 mywebfolder 的情况下正确显示。但是,只要我单击任何链接并进入更深的子文件夹,就会显示 mywebfolder。例如,我从我的启动页面单击一个链接,它会将我带到 mydomain.com/mywebfolder/subdirectory/mypage.php。但我希望它显示:mydomain.com/subdirectory/mypage.php。有没有办法做到这一点?谢谢!
-
是的,我现在看到了。这是可能的,但让我先测试一下。
-
你的 Apache 版本是多少?
标签: apache mod-rewrite