RewriteRule 与预期不匹配(我)

发布于 2024-10-30 02:50:10 字数 422 浏览 1 评论 0原文

我不明白为什么这不起作用。也许有人可以向我解释一下。

我有以下内容:

http://www.mydomain.de/my-apache-tag.html 

应该重写为

http://www.mydomain.de/tag/my-apache

在我的 .htaccess 中,我启用了此规则:

RewriteRule ^/(.*)-tag\.html$ /tag/$1

根据我的理解, / 和之前 -tag.html 之间的所有内容都应视为参数 1。

但是上面的内容将导致 404。我什至将/tag/$1 前面的域但这也不起作用。

感谢任何帮助,非常感谢。

基督教

i cannot understand why this is not working. Maybe somebody can explain it to me.

I have the following:

http://www.mydomain.de/my-apache-tag.html 

which should rewrite to

http://www.mydomain.de/tag/my-apache

In my .htaccess I enabled this rule:

RewriteRule ^/(.*)-tag\.html$ /tag/$1

In my understanding everything between / and before -tag.html should be taken as argument 1.

But the above will lead to a 404. I even put the domain in front of /tag/$1 but this doesn't work too.

Any help is appreciated, thanks much.

Christian

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

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

发布评论

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

评论(1

根据 apache 版本,不需要前导斜杠。 (如果您希望能够匹配这两种情况,您可以放置​​ /?)请参阅 @Jeff Parker 评论。

另外,如果您希望在输入 http://www.mydomain.de 时 URL 在浏览器中显示为 http://www.mydomain.de/tag/my-apache /my-apache-tag.html,您应该添加 [R] 标志进行重定向。

当然,服务器上的文件应名为 tag/ 目录中的 my-apache。否则会出现 404 错误。

如果您希望客户端输入 http://www.mydomain.de/tag/my-apache 并获得服务 http://www.mydomain.de/my-apache-tag .html 你的规则是错误的,应该是:

RewriteRule ^tag/(.*)$ /$1-tag.html

如果你想结合这两种行为,请小心循环。

Depending on apache version, the leading slash is not required. (You can place /? if you want to be able to match both cases) see @Jeff Parker comment.

Also, if you want the URL to be displayed as http://www.mydomain.de/tag/my-apache in the browser when typing http://www.mydomain.de/my-apache-tag.html, you should add the [R] flag to redirect.

And of course, your file on the server should be name my-apache in the tag/ directory. Or you will have 404 error.

If you want the client to type http://www.mydomain.de/tag/my-apache and be served http://www.mydomain.de/my-apache-tag.html your rule is wrong and should be :

RewriteRule ^tag/(.*)$ /$1-tag.html

If you want to combine both behaviour, be careful of loops.

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