gpt4 book ai didi

apache - .htaccess - 通过 URL 重写防止无限循环

转载 作者:行者123 更新时间:2023-12-02 11:54:08 26 4
gpt4 key购买 nike

我有一个 .htaccess,其中包含以下内容:

<Files .htaccess>
order allow,deny
deny from all
</Files>

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !^(.*)/maintenance/(.*)$ [NC]

RewriteRule ^(.*).jpg$ /mysite/maintenance/transparent.png [NC,R=302,L]
RewriteRule ^(.*).jpeg$ /mysite/maintenance/transparent.png [NC,R=302,L]
RewriteRule ^(.*).gif$ /mysite/maintenance/transparent.png [NC,R=302,L]
RewriteRule ^(.*).png$ /mysite/maintenance/transparent.png [NC,R=302,L]

RewriteRule ^(.*).php$ /mysite/maintenance/maintenance.php [NC,R=302,L]

在本地主机上测试。

通过这些设置,我在尝试加载 http://localhost/mysite/test.php 时出现无限循环,(正确)重定向到 http://localhost/mysite/maintenance/maintenance.php

该循环似乎是由于 4 个图像重定向造成的(注意:维护页面有一个位于维护文件夹根目录中的唯一 jpg 背景图像)。注释掉这 4 行重定向即可解决问题。

但我不明白为什么我会进入无限循环,因为/maintenance/路径本身被排除在 RewriteCond 中的重定向之外,也不明白为什么图像上的重定向会干扰此问题。

你能帮忙吗?

最佳答案

您必须像这样重新排序您的RewriteConds:

RewriteEngine On

RewriteRule \.jpg$ /mysite/maintenance/transparent.png [NC,R=302,L]
RewriteRule \.jpeg$ /mysite/maintenance/transparent.png [NC,R=302,L]
RewriteRule \.gif$ /mysite/maintenance/transparent.png [NC,R=302,L]
RewriteCond %{REQUEST_URI} !^.*/maintenance/.*$ [NC]
RewriteRule \.png$ /mysite/maintenance/transparent.png [NC,R=302,L]

RewriteCond %{REQUEST_URI} !^.*/maintenance/.*$ [NC]
RewriteRule \.php$ /mysite/maintenance/maintenance.php [NC,R=302,L]

RewriteCond 指令仅影响其后的第一个 RewriteRule

关于apache - .htaccess - 通过 URL 重写防止无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30830482/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com