【问题标题】:endless rewrite to subfolder apache无休止地重写子文件夹apache
【发布时间】:2013-12-03 02:14:32
【问题描述】:

我正在尝试让我的 /website/ 文件夹重写为 /website/public/ 文件夹 我尝试了几种方法,现在我正在使用

RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !^C:/Users/Compaq/code/website/public/(.*)$
RewriteRule ^(.*)$ http://localhost/website/public/$1 [L]

由于某种原因导致它自身循环,SCRIPT_FILENAME 变量在第一次重写发生的那一刻不包含“public”吗?

【问题讨论】:

    标签: apache .htaccess wamp


    【解决方案1】:

    试试:

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !^/website/public/
    RewriteRule ^(.*)$ http://localhost/website/public/$1 [L]
    

    请注意,这将在外部重定向浏览器并更改 URL 位置栏。要在内部重写,您需要从规则的目标中删除 http://localhost

    【讨论】:

    • 我试过了,但我只是得到“Firefox 检测到服务器正在以永远不会完成的方式重定向对该地址的请求。”如果我添加 [R] 标志,它可以工作,但它会变成重定向而不是重写,并且 URL 会更改。
    • 是的,我正在使用 RewriteRule ^(.*)$ /website/public/$1 [L]
    • @user3059655 你没有其他规则吗?
    • 不,除了你给我的规则外,文件完全是空的
    • 缓存没有问题,考虑到我没有进行永久 301 重定向,当我在多个实例上更改我的重写代码时,它立即显示不同的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    相关资源
    最近更新 更多