php 中的 .htaccess 问题

发布于 2024-11-02 09:36:35 字数 493 浏览 1 评论 0原文

该块位于我的 .htaccess 中,

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

我想在我的 .htaccess 中添加以下块, 两个块都可以正确运行,但不能一起工作,

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

所以我想将两个块都放入我的 htaccess 中,那么我该如何组合它呢? 谢谢

This block is in my .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]

i want to add following block with my .htaccess,
both block run correctly but cant work together

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

SO i want both block into my htaccess so how can i combined it?
Thank You

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

葬シ愛 2024-11-09 09:36:35

您需要先从 RewriteRule ^.*$ /index.php [NC,L] 中删除 L。因为 L 是最后一条规则。

'last|L'(最后一条规则)
在这里停止重写过程并
不要再应用任何重写规则。
这对应于 Perl last
命令或来自的 break 命令
C语言。使用此标志可以防止
当前重写的 URL
通过以下规则进一步重写。
例如,用它来重写
真实 URL 的根路径 URL ('/')
例如'/e/www/'

You need to remove L from you first RewriteRule ^.*$ /index.php [NC,L]. Because L is the last rule.

'last|L' (last rule)
Stop the rewriting process here and
don't apply any more rewriting rules.
This corresponds to the Perl last
command or the break command from the
C language. Use this flag to prevent
the currently rewritten URL from being
rewritten further by following rules.
For example, use it to rewrite the
root-path URL ('/') to a real one,
e.g., '/e/www/'.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文