.htaccess 重写规则-don';我不想重定向我的页面

.htaccess 重写规则-don';我不想重定向我的页面,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我对规则有意见。我正在做英文版的网站,重写规则似乎不起作用: RewriteRule ^news/([0-9]+)/.* news.php?id=$1 [NC,QSA] RewriteRule ^news newslist.php [NC,QSA] 这很奇怪,因为这段代码以前的版本工作得很好。这是: RewriteRule ^aktualnosci/([0-9]+)/.* czytaj.php?id=$1 [NC,QSA] RewriteRule ^aktualnosci aktualnosc

我对规则有意见。我正在做英文版的网站,重写规则似乎不起作用:

RewriteRule ^news/([0-9]+)/.* news.php?id=$1 [NC,QSA]
RewriteRule ^news newslist.php [NC,QSA]
这很奇怪,因为这段代码以前的版本工作得很好。这是:

RewriteRule ^aktualnosci/([0-9]+)/.* czytaj.php?id=$1 [NC,QSA]
RewriteRule ^aktualnosci aktualnosci.php [NC,QSA]

第一个代码可能有什么问题?第一条规则将我重定向到newslist.php规则。

您发布的规则有些异国情调。。。我敢说,你可能正在寻找这样的东西:

RewriteEngine on
RewriteRule ^/?news/([0-9]+)/?$ news.php?id=$1 [NC,L]
RewriteRule ^/?news/?$ newslist.php [NC,L]


还有一个一般提示:您应该始终希望将此类规则放置在http服务器(虚拟)主机配置中,而不是使用动态配置文件(
.htaccess
样式文件)。这些文件是出了名的容易出错,难以调试,而且它们确实降低了服务器的速度。只有在您无法控制主机配置的情况下(阅读:非常便宜的主机服务提供商),或者如果您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦),才提供它们作为最后一个选项。

感谢您的解释。但不幸的是,你的代码不适合我。第一条规则出现404错误。第一条规则将我重定向到第二页(news;newslist.php),请将两个示例请求URL添加到问题本身。谢谢。第一条规则重写为
/news….
,然后第二条规则立即再次重写。但我编写的第二条代码工作正常。是一样的,只是名字不同。不,不一样。在第二个示例中,第一个规则重写为
czytaj…
,而第二个规则将不匹配。所以这只是文件名的问题?编辑:是的,这取决于文件名。现在它开始工作了。严格地说,是的,您在第一个规则集中实现了一些来自碰撞的规则。然而我仍然认为你的模式看起来很有趣,这就是为什么我要在下面举个例子。你真正需要关心的不是在这附近找工作的名字,而是事实,你显然应该试着更深入地了解正在发生的事情,这些东西是如何工作的。别误会我的意思,我在这里并不是毫无期待的!只是你最后的评论表明你在错误的方向上思考。。。