gpt4 book ai didi

apache - 在应用 DirectoryIndex 之后应用 mod_rewrite 规则

转载 作者:行者123 更新时间:2023-12-01 05:46:45 26 4
gpt4 key购买 nike

我的托管公司最近将我从 Apache 1 升级到 Apache 2,并且我已经开始看到我的 mod_rewrite 内容出现了一些完全不同的行为。

这是我的 .htaccess 文件:

DirectoryIndex blog.html

# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on

# Rewrite current-style URLs of the form 'showpage.php?url=x'.
RewriteRule ^(.*\.html)$ showpage.php?url=$1 [L,QSA]

</IfModule>

现在,以前使用 Apache 1,如果您转到 http://mysite.com/然后 DirectoryIndex 将首先生效( http://mysite.com/blog.html ),然后 RewriteRule 将把它变成 http://mysite.com/showpage.php?url=/blog.html

现在有了 Apache 2,如果你去 http://mysite.com/blog.html它会按预期重写,但如果你去 http://mysite.com/它为您提供 vanilla blog.html 文件,而无需将其重写为 showpage.php。所以 RewriteRule 在 DirectoryIndex 开始之前被应用。

除了显式添加额外的规则来捕获根页面(这会很乏味,因为我必须考虑所有也有 DirectoryIndex 的子目录)有没有人知道在应用 DirectoryIndex 后让 Apache 2 应用 RewriteRule 的方法?

最佳答案

试试这个规则而不是 DirectoryIndex指示:

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)/?$ $1/blog.html

关于apache - 在应用 DirectoryIndex 之后应用 mod_rewrite 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368269/

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