我正在尝试转换我的应用链接,以便像这样的链接:
http://localhost/index.php?id=13&category=Uncategorized&title=just-a-link
转换为这个:
http://localhost/13/Uncategorized/just-a-test
到目前为止我能够使用:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$/index.php?id=$1&category=$2&title=$3 [QSA,L]
但是它会完全断开与css和其他文件的链接,因为它会将每个带有查询的请求重定向到index.php
所以我稍微改了一下,以便它只在第一个查询是一个数字时运行:
RewriteEngine On
RewriteRule ^([0-9]*)/([^/]*)/([^/]*)$/index.php?id=$1&category=$2&title=$3 [QSA,L]
这个没有破坏css和js文件,但是当你去链接例如http:// localhost / 13 / cat / test然后尝试去另一个链接,如http:// localhost / 19 / Uncategorized / something通过在上一页内点击它,它将改为将你重定向到http:// localhost / 13 / Uncategorized / 19 / Uncategorized / just-a-test
如何在没有任何这些奇怪的副作用的情况下实现我所描述的内容?
最佳答案 使用 :
RewriteEngine On
RewriteRule ^([0-9]+)/([^/.]+)/([^/.]+)/?$/index.php?id=$1&category=$2&title=$3 [QSA,L]
并将此代码添加到您的html< header>:
<base href="/">
要么
<base href="http://www.domain.com/">
修复相对的css和js链接