【问题标题】:Mod_Rewrite Simplest Way to Hide Folder in URL For ALL Sub-directoriesMod_Rewrite 在所有子目录的 URL 中隐藏文件夹的最简单方法
【发布时间】: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


【解决方案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

【讨论】:

  • 这实际上最终导致我找到了我的解决方案。你说我原来的重写工作是正确的,尽管这是一个更好的解决方案。我的问题是网站上的所有符号链接都使用/mywebfolder/,所以它出现在栏中。如果我直接导​​航到一个链接,它会起作用。所以我更新了我所有的相关链接,它现在似乎正在运行。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 2017-11-01
  • 2013-10-26
  • 1970-01-01
相关资源
最近更新 更多