1

我有一个网站,我的链接是这样的:

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?

提前致谢!

亲切的问候

4

2 回答 2

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使用其规则制作更具体的此类列表。

于 2012-11-27T15:10:43.927 回答
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 网址,那么这一切都没有意义,因为即使它们有效,谷歌也不会看到纯文本网址(没有人会)。

于 2012-11-27T15:15:55.283 回答