【问题标题】:htaccess - Redirect All but Sub-Directory (Ember js)htaccess - 重定向除子目录以外的所有内容(Ember js)
【发布时间】:2016-09-24 14:06:02
【问题描述】:

我正在使用 Ember 运行我的主网站,因此我的 htaccess 文件设置为将所有请求重定向到我的索引页面以进行路由。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]

不过,我后来添加了一个名为 /horror 的子目录,它也在 Ember 上运行。对domain.com/horror 发出的任何请求我都想再次重定向到/horror/index.html,以便正确路由。

目前,当我访问 domain.com/horror 时,页面运行。但是,如果我尝试直接转到 domain.com/horror/1,我将被重定向到我的主域的 404 页面,而不是正确的 /horror/ 路由。我需要这个 /horror 目录作为独立站点运行 - 访问它自己的 CSS、Js 和图像,而不与主域的 Ember 路由器冲突。

如何配置我的 .htaccess 文件来处理这个问题?

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite ember.js


    【解决方案1】:

    你可以有一个单独的规则来处理/horror/

    RewriteEngine on
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/horror/index\.html$ [NC]
    RewriteRule ^horror(/.*)?$ horror/index.html [L,NC]    
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.html [L]
    

    【讨论】:

    • 我应该改写我的问题,我仍然需要我对恐怖/.css、.js、.jpg 等的请求......才能正常工作。看起来测试这会强制所有这些请求仍然进入索引。
    • 更接近。现在,当我去 /horror 时,初始加载有效。但是,例如,如果我转到 /horror/1,我仍然会收到我的主域的 404 页面。
    • 你绝对让我开心。谢谢,这很好用!
    猜你喜欢
    • 2013-09-23
    • 2010-10-06
    • 1970-01-01
    • 2014-07-23
    • 1970-01-01
    • 2016-11-12
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多