htaccess add 301 永久移至 RewriteRule

发布于 2024-10-13 04:26:47 字数 382 浏览 3 评论 0原文

我的 .htaccess 文件中有这条规则:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php

它的作用是将所有 url 的 index.php?somevar=# 重定向到 index.php,但是当它重定向时发送代码 302 而我希望它是 301。

我尝试添加RewriteRule 之后的 [R=301] 。 /index.php 但它不起作用。

感谢一些帮助:-)

I have this rule in my .htaccess file:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php

what it does is to redirect all url's index.php?somevar=# to index.php, however when it redirect's sends out code 302 and i want it to be 301.

I tried to add [R=301] after RewriteRule . /index.php but it doesn't work.

Some help is appreciated :-)

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

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

发布评论

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

评论(1

雨落□心尘 2024-10-20 04:26:47

这东西不符合你所描述的。您的规则将对不存在文件的每个请求发送到index.php。 URL:

index.php?anything

已经调用index.php。你不需要任何重写魔法来处理这个问题。

另外...

RewriteRule . /index.php

也是一个不好的做法。它现在不会给您带来问题,但将来当您修改规则时可能会出现问题。你宁愿使用:

RewriteRule .* /index.php

This thing does not do what you describe. Your rule sends every request to non-existent files to index.php. The URL:

index.php?anything

already calls index.php. You don't need any rewrite magic to handle that.

Also ...

RewriteRule . /index.php

is a bad practice. It does not cause you problems now, but it could in the future, when you modify the rules. You'd rather use:

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