我正在使用.htacess文件重写网址。我写了有效的rewritrule。但它的一个问题。也就是当页面完全加载时,浏览器中的url再次以querystring格式更改。我的代码如下。请帮助我如何设置它。
RewriteRule ^/?([0-9]+)/([A-Za-z,0-9,-]+)/?$ /mysite.com/player.php?/$1/$2 [R]
我写这个网址
www.mysite.com/4/title
并将其重定向到
www.mysit.com/player.php?/4/title
它工作正常但是当页面完全加载到浏览器地址时
www.mysite.com/player.php?/4/title
不会保留此格式
(www.mysit.com/4/title)
请帮助谢谢。
答案 0 :(得分:0)
您可以通过设置R标记将自己重定向到错误的网址。这表明应该强制进行外部重定向。您可以改为添加L标志,因此在此之后不会执行重写规则:
RewriteRule ^/?([0-9]+)/([A-Za-z,0-9,-]+)/?$ /mysite.com/player.php?/$1/$2 [L]
答案 1 :(得分:0)
[R]
标志会让您在物理上重定向到新地址,而不仅仅是在幕后重写URL。
RewriteRule ^/?([0-9]+)/([A-Za-z,0-9-]+)/?$ /mysite.com/player.php?/$1/$2
这应该有效。另外,看起来你在重写中使用,
作为分隔符 - 这是不必要的,你不需要在char类型之间使用分隔符;您实际上是在URL中匹配,
。如果这是设计的行为,你只需要一个逗号(你有2个)。
答案 2 :(得分:0)
首先你需要有这个规则:
RewriteEngine On
RewriteRule ^([0-9]+)/([A-Za-z,0-9,-]+)/?$ /player.php?/$1/$2 [L,QSA]
然后确保在css,js,images文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径以http://
或斜杠/
开头。