我在.htaccess中有以下重定向:
Options -MultiViews
RewriteBase /
rewritecond %{THE_REQUEST} \s/+product\.php\?id=([^\s&]+)&name=([^\s&]+) [NC]
rewriterule ^ %2/%1? [R=301,L]
rewritecond %{REQUEST_FILENAME} !-d
rewritecond %{REQUEST_FILENAME} !-f
rewriterule ^([^/]+)/([^/]+)?$ /product.php?id=$2&name=$1 [L,QSA]
效果很好。 也到位:
<base href="/" />
然而,在这个页面上,我有链接到其他页面,当你点击它们时它们正常工作。它们的定义如下:
<a href="http://www.mysite.co.uk/Roland-HPi50e-Digital-Piano-in-Rosewood/518">
<img src="/files/images/special_roland_hpi50e_160x500px.png" alt="Roland HPi Pianos">
</a>
问题是 - 谷歌做了一些奇怪的事情,例如:
http://www.mysite.co.uk/a product/Roland-HPi50e-Digital-Piano-in-Rosewood/518
有没有人可以帮我解决这个问题,因为我不知道是什么原因造成的。 欢迎任何帮助。
答案 0 :(得分:0)
可能有逃生字符串问题,试试这个,希望这会对你有帮助
RewriteEngine On
RewriteCond %{QUERY_STRING} ^out=([^&]+)
RewriteRule ^/?$ http://www.mysite.co.uk/Roland-HPi50e-Digital-Piano-in-Rosewood/518 [L,R=301]
答案 1 :(得分:0)
删除此标记:
<base href="/" />
对于修复图像/ css路径,请在css,js,images文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。