【发布时间】: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