重写URL但真正的URL更改

时间:2015-01-11 06:27:02

标签: php apache .htaccess mod-rewrite redirect

我在下面重写了网址代码:

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

当我访问: dommain.com/test-125-ggg/data-259-data2.html 时,它正常运行,但此网站中的所有链接都更改为 dommain.com/ < EM>测试-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,但我不知道该怎么做?

非常感谢你

1 个答案:

答案 0 :(得分:0)

您可以使用:

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,images文件中的绝对路径而不是相对文件。这意味着您必须确保这些文件的路径以http://或斜杠/开头。

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