【问题标题】:HTACCESS, not on a certain pageHTACCESS,不在某个页面上
【发布时间】:2014-07-25 06:52:17
【问题描述】:

我想检查用户是否通过以下网址之一进入网站

(en|nl|fr|de|es|pl|sv|it|cs|el|fi|hu)/(home|business|product|contact|faq|gallery|videos|locator)

否则,我想将用户重定向到 404 页面。

我试过这个:

RewriteRule !^((en|nl|fr|de|es|pl|sv|it|cs|el|fi|hu)/(home|business|product|contact|faq|gallery|videos|locator)|404)$ /404 [L,R=307]

但这给了我一个路由循环。

你知道如何解决这个问题吗?

【问题讨论】:

    标签: regex .htaccess mod-rewrite routing


    【解决方案1】:

    使用这个:

    RewriteCond %{REQUEST_FILENAME} !^404|(?:css|js|jpg|gif|png)$ [NC]
    RewriteRule !^(en|nl|fr|de|es|pl|sv|it|cs|el|fi|hu)/(home|business|product|contact|faq|gallery|videos|locator) - [L,R=404]
    

    【讨论】:

    • 这似乎有效。但是,现在,我所有的图像/css/脚本都没有正确加载,它们位于 /uploads 目录中。
    • 我添加了一个条件,因此我们不会 404 文件以 css 等结尾。如果需要,您知道如何添加扩展名。让我知道这个是否奏效。 :) 顺便说一句,如果您仍然得到 404,请尝试使用其他浏览器,因为您的浏览器可能已经缓存了 404,或者清除缓存。
    • 哦,最后一件事,我有一个自定义的 404 页面。这就是我首先路由到 /404 的原因。但是,我得到一个无限循环,因为 404 页面不在异常中。很抱歉打扰你,htaccess 对我来说是非常非常新的 :)
    • +1 持续支持以帮助 OP。 @ThomasdeRoo:发布有问题的完整 .htaccess 总是有帮助的。
    猜你喜欢
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2011-08-08
    • 2014-09-02
    相关资源
    最近更新 更多