重写 URL 但真正的 URL 改变

Rewrite URL but real URL change

我重写了下面的 URL 代码:

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

当我访问:domain.com/test-125-ggg/data-259-data2.html 它工作但所有 link 在这个网站上都变成了 dommain.com/test-125-ggg/xxxxx

Ex : 域.com/test-125-ggg/images/logo.png 而不是域.com/images/logo.png

如何解决这个问题?

我想要访问域。com/process.php?device=$1&url=$2 它会自动重定向到域。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=&url= [L,NC,QSA]

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

开头

否则您也可以尝试将此添加到页面 HTML 的 <head> 部分:<base href="/" /> 这样每个亲戚 URL 是从 URL 解析的,而不是当前页面的 URL.