RewriteRule 定义不起作用

发布于 2025-01-01 10:32:35 字数 264 浏览 1 评论 0原文

如果我有以下 RewriteRule 且没有任何其他 RewriteRule 定义

RewriteRule ^de/(var)/(.+) /$1/$2 [NC,L]

,则一切正常,

但是当我在 .htaccess 文件中也有以下 RewriteRule 时

RewriteRule .* index.php [L]

,则第一个 RewriteRule 不起作用。

If I have the following RewriteRule without any other RewriteRule definitions

RewriteRule ^de/(var)/(.+) /$1/$2 [NC,L]

Then everything works fine

But when I have the following RewriteRule as well in the .htaccess file

RewriteRule .* index.php [L]

Then the first RewriteRule does not work.

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

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

发布评论

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

评论(2

童话 2025-01-08 10:32:35

我相信这就是你应该遵守这两条规则的方式:

RewriteRule ^de/(var)/(.+)$ /$1/$2 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/de/var/ [NC]
RewriteRule ^ index.php [L]

I believe this is how your should keep both rules:

RewriteRule ^de/(var)/(.+)$ /$1/$2 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/de/var/ [NC]
RewriteRule ^ index.php [L]
在巴黎塔顶看东京樱花 2025-01-08 10:32:35

下面的解决方案应该可以解决您眼前的问题。

如果您提供有关规则意图的详细信息,可以提供更好的解决方案。

RewriteEngine On
RewriteBase /

RewriteRule ^de/(var)/(.+) /$1/$2 [NC,L]

#prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule .* index.php [L]

This solution below should fix your immediate problem.

A better solution could be provided if you supply details about the intent of your rules.

RewriteEngine On
RewriteBase /

RewriteRule ^de/(var)/(.+) /$1/$2 [NC,L]

#prevent internal redirects
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule .* index.php [L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文