【问题标题】:How do I use .htaccess to change the structure of my website?如何使用 .htaccess 更改我的网站结构?
【发布时间】:2011-08-31 21:01:31
【问题描述】:

我正在对我的网络服务器进行一些重组,并希望改变我的结构的工作方式。目前,所有内容都存储在最低级别,因此当我访问我的网站时,网址如下所示:

www.example.com
www.example.com/page1.php

我的网站中有很多页面,我想将它们移出主文件夹。例如。

www.example.com/folder/
www.example.com/folder/page1.php

但是,我希望用户不要看到网址的 /folder/ 部分。换句话说,当用户访问我的网站时,我希望他导航到:

www.example.com/page1.php
www.example.com/myfolder1/page1.php
www.example.com/myfolder2/page2.php
www.example.com/anyfoldername/anypagename.php

但实际上在

www.example.com/folder/page1.php
www.example.com/folder/myfolder1/page1.php
www.example.com/folder/myfolder2/page2.php
www.example.com/folder/anyfoldername/anypagename.php

我希望始终显示不带 / 文件夹的 url。

有没有办法用 .htaccess 文件做到这一点?

【问题讨论】:

  • 您可以使用 mod_rewrite 将 /page1.php 重写为服务器上的 /folder/page1.php。但是假设您在 /folder 中有 page1.php,在 /folder2 中有 page2.php。通过只访问 www.example.com/page2.php,我认为重写引擎无法知道文件在哪个文件夹中,除非您手动为所有页面设置重写。

标签: .htaccess dns file-structure


【解决方案1】:

您可以使用 mod_rewrite 轻松完成此操作。例如:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^page1\.php$ /folder/page1.php [L]

注意: 这将被放置在您网站根文件夹中的 .htaccess 中。如果放置在其他地方,可能需要进行一些小的调整。


更新:

RewriteCond %{REQUEST_URI} !^/folder/
RewriteRule ^(.*)$ /folder/$1 [L]

【讨论】:

  • 谢谢。一点澄清。我有近 100 页嵌套在许多文件夹中。我将如何做同样的事情,但对于所有文件夹中的所有文件? www.example.com/folder1/folder2/page1.php
  • 我需要看几个例子(从 URL => 到 URL)来发现模式。如果有共同点——我可以创建一个规则(或几条规则),一次性覆盖一堆页面——这一切都取决于它需要如何重写:如果有一个模式,那么它很容易,如果不是——那么一个一个。
  • www.example.com/page1.php => www.example.com/folder/page1.php, www.example.com/page2.php => www.example.com/folder/ page2.php, www.example.com/myfolder1/page1.php => www.example.com/folder/myfolder1/page1.php, www.example.com/myfolder2/page2.php => www.example.com/文件夹/myfolder2/page2.php
  • 我在原始问题中添加了一些说明以帮助示例。我猜,评论部分并不意味着很多例子。
  • 你太棒了!这就像一个魅力。我的网站的新组织结构更易于导航且更简洁。我不知道该怎么感谢你。
【解决方案2】:
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)$ folder/$1 [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    相关资源
    最近更新 更多