我想更改重写 url 以删除 id 号,所以
site/2-post.html
--> 通常
site/post.html
--> 我想要的
可能吗 ?我检查了模块 php 文件并在必要时更改了代码,但.htaccess
无法设置。我.htaccess
在这里我想当我改变它时有必要的部分发生了一些问题
RewriteRule ^([0-9]+)-([^/]*)\.html$ /index.php?newsid=$1&seourl=$2 [L]
我想更改重写 url 以删除 id 号,所以
site/2-post.html
--> 通常
site/post.html
--> 我想要的
可能吗 ?我检查了模块 php 文件并在必要时更改了代码,但.htaccess
无法设置。我.htaccess
在这里我想当我改变它时有必要的部分发生了一些问题
RewriteRule ^([0-9]+)-([^/]*)\.html$ /index.php?newsid=$1&seourl=$2 [L]
这个 hack 替换 id 到 url 的结尾:找到这个:engine/modules/show.short.php engine/modules/show.full.php
寻找 。$row['id'] 。“-”。$row['alt_name'] 。".html";
用。。。来代替: 。$row['alt_name'] 。“-”。$row['id'] 。".html";
将此代码放入 .htaccess
RewriteRule ^(.*)-([0-9]+).html(/?)+$ index.php?newsid=$1&seourl=$2 [L]
RewriteRule ^([^.]+)/(.*)-([0-9]+).html(/?)+
$ index.php?newsid=$2&seourl=$3&seocat=$1 [L]
回到 DLe 8.x 可以修改此选项,但在 9.x 和 10.x 中不走运,我完全同意 IMSoP,因为 DLE 使用 ID 库生成 seourl。
我认为您想要实现的目标是不可能的,因为应用程序需要知道 ID 才能做任何有用的事情。如果浏览器请求的唯一内容是site/post.html
,则服务器无法神奇地重新创建以前在 URL 中的 ID。
唯一可行的方法是应用程序可以完全基于“seourl”参数查找文章,在这种情况下,您可以简单地从 URL 中删除“newsid”部分,留下如下规则:
RewriteRule ^([^/]*)\.html$ /index.php?seourl=$1 [L]
测试这是否可行的简单方法是在浏览器中键入规则将映射到的形式的 URL,例如http://yoursite.example.com/index.php?seourl=some-post-that-exists