我有一个网站,我这样链接:
a href="?lang=en&p=3"
我的网址是这样的:
http://www.mywebsite.com/?lang=en&p=3
但我希望我的网址变成这样:
http://www.mywebsite.com/english/about-us
我知道你有这样的事情:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z]+)/([0-9]+)/$ ?lang=$1&p=$2
但它不起作用......
有人可以帮我解决这个.htaccess
文件吗?
我是否还要改变我的href url?
提前致谢!
亲切的问候
答案 0 :(得分:2)
尝试这样的事情:
RewriteCond %{QUERY_STRING} ^lang=([a-zA-Z]*)&p=(.*)$
RewriteRule ^(.*)$ /%1/%2? [R=301,L]
这将使301重定向:
http://www.mywebsite.com/?lang=en&p=3
于:
http://www.mywebsite.com/en/3
如果您需要其他一些重定向规则,请根据需要修改该规则,例如:根据规则列出更具体的RewriteCond
列表。
答案 1 :(得分:1)
如果您的网站需要p = 3
等参数,请将其与硬编码页面名称一起使用<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/about-us$ ./?lang=$1&p=3 [QSA]
RewriteRule ^(.*)/another-page$ ./?lang=$1&p=4 [QSA]
</IfModule>
如果您修改网站以使其接受p = about-us等参数,则会更简单:
(http://www.mywebsite.com/?lang=en&p=about-us)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/(.*)$ ./?lang=$1&p=$2 [QSA]
</IfModule>
如果你不改变你的href网址,这一切都没有意义,因为谷歌即使工作也不会看到纯文本网址(没人会)。