重写 URL,但实际 URL 更改


Rewrite URL but real URL change

我在下面重写了URL代码:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)'.html$ /process.php?device=$1&url=$2 [L]

当我访问时:dommain.com/test-125-ggg/data-259-data2.html 它工作,但此网络中的所有链接都更改为 dommain.com/test-125-ggg/xxxxx

例如:dommain.com/test-125-ggg/images/logo.png 而不是 dommain.com/images/logo.png

如何解决这个问题?

我希望在访问 domain.com/process.php?device=$1&url=$2 它自动重定向到 dommain.com/zzz/xxx 但我不知道该怎么做?

非常感谢

您可以使用:

RewriteEngine On
RewriteCond %{THE_REQUEST} 's/+process'.php'?device=([^'s&]+)&url=([^'s&]+) [NC]
RewriteRule ^ /%1/%2.html? [R=302,L,NE]
RewriteRule ^([^/]+)/([^/.]+)'.html$ /process.php?device=$1&url=$2 [L,NC,QSA]

要解决其他问题,请在css,js,图像文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。

否则,您也可以尝试在页面的 HTML: <base href="/" /><head>部分添加此内容,以便从该 URL 而不是当前页面的 URL 解析每个相对 URL。