【问题标题】:Single Page Website .htaccess单页网站 .htaccess
【发布时间】:2013-08-01 15:53:59
【问题描述】:

让我们看看我是否能很好地解释这种情况。我有一个单页网站,所有内容都在屏幕上,但被隐藏了。如果,钉,你去 domain.com/product/about 我会采取第一部分去 div-column "product" 和 div-row "about",有一些Javascript 和 CSS 定位

问题:我需要我的 .htaccess 将 所有 URL(index.html ofc 除外)重写为 index.html(或我们设置的任何 URL)。

问题内部的问题:这个网页在一个子目录中,它可能 - 可能 - 在二级子目录中(即 (root)/folder/subfolder/这个网站)。让我们看看最后一种情况,所以上升比下降更容易。

我有什么:

RewriteEngine on
Options +FollowSymLinks
RewriteBase /folder/subfolder/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_URI} !^index.html
RewriteRule .* /index.html [L]

会发生什么:

  • domain.com/subfolder/foo:重定向到 domain.com/folder/subfolder/
  • domain.com/subfolder/foo/:在此服务器上找不到请求的 URL /er1csports/test/foo/。

玩弄其他规则,有时我被重定向到父文件夹 index.html。就像 RewriteRule 根本不起作用一样 - JFYI

我需要什么:

  • 正如我所说,将所有内容重写为 index.html,不更改地址栏中的 URL - URL 的子级别 (foo/foo2/foo3 也应该重写为 index.html)。
  • 图片、CSS、Javascript 和一般资源,如果它们不受其 URL 和引用的影响,那就太好了。
  • 无论 URL 是什么,“文件夹”都不应出现在 URL 地址栏中。 如果我能被告知如何隐藏“子文件夹”,如果在两种情况下应用的规则不同,那也很棒

我知道很多事情。但我讨厌 .htaccess,而且我已经搜索了好几个小时了,但一直找不到。

我会继续搜索和尝试,但我不想写 100 行,因为有办法只写 10 行并保持干净。

非常感谢您的帮助和时间!

【问题讨论】:

    标签: .htaccess redirect rewrite subdirectory url-redirection


    【解决方案1】:

    尝试在 .htaccess 中使用此代码:

    Options +FollowSymLinks -MultiViews
    
    RewriteEngine on
    RewriteBase /folder/subfolder/
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule . index.html [L]
    

    【讨论】:

    • 您好!感谢您的回答!不幸的是,找不到 domain.com/subfolder/foo,并重定向到 domain.com/folder/subfolder/foo/。也许模式文件夹中的 .htaccess 可能会搞砸事情?
    • .htaccess 以上将适用于以下网址:domain.com/folder/subfolder/foo(您的网址在subfolder 之前没有folder/ 但是是的,父文件夹中存在的.htaccess 确实会改变其行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2012-05-15
    • 2023-01-18
    • 1970-01-01
    • 2012-11-14
    • 2012-04-16
    相关资源
    最近更新 更多