【问题标题】:Rewrite all files from newfolder to index.html将新文件夹中的所有文件重写为 index.html
【发布时间】:2014-02-10 20:47:39
【问题描述】:

我有这个代码:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_USER_AGENT} (mozilla|navigator|chrome) [NC]
RewriteRule ^/newfolder/(.+) /index.html/$1 [L,NC]

当然,我希望将 newfolder(位于 public_html 中)中的所有文件重写为位于 public_html 中的 index.html。任何帮助请...

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    从您的正则表达式中删除前导斜杠以匹配 URI:

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_USER_AGENT} (mozilla|navigator|chrome) [NC]
    RewriteRule ^newfolder(/|$) /index.html [L,NC]
    
    • .htaccess 是每个目录指令,Apache 从 RewriteRule URI 模式中删除当前目录路径(因此是前导斜杠)。

    【讨论】:

    • 它不工作,它应该是。它说找不到 404 错误页面,这不是真的,我检查它是否存在。你知道其他方法吗?我把代码放在开头没有米。你的代码,一些新的解决方案只能工作......
    • 您在newfolder 目录中也有.htaccess 文件吗?
    • 不,在更高级别的目录中没有其他 .htaccess 文件低于而不是高于。我把它称为“干净”。我不知道为什么这么复杂......你有其他代码吗 - 我可以尝试其他一些想法?
    • 这是您的第一条规则吗?你是从 crom 浏览的吗?如果两个问题都是肯定的,那么尝试添加R 使其成为RewriteRule ^newfolder/(.*)$ /index.html/$1 [L,NC,R] 并重新测试。
    • 同样的错误 404 错误文档句柄。但是在地址行中,当按回车时它会改变:在地址行中按回车后,mywebsite.com/newfolder/second.html 变成了 mywebsite.com/index.html/second.html 就像它尝试从 index.html 中打开 second.html 一样它是文件夹...你知道为什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2014-06-17
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    相关资源
    最近更新 更多