如何重写以下示例?
www.domain-name.com/site-name/index.php?lang=en-us&page=home
www.domain-name.com/site-name/index.php?lang=en-us&page=about
www.domain-name.com/site-name/index.php?lang=pt-pt&page=inicio
www.domain-name.com/site-name/index.php?lang=pt-pt&page=sobre
对此:
www.domain-name.com/site-name/en-us/home.html
www.domain-name.com/site-name/en-us/about.html
www.domain-name.com/site-name/pt-pt/inicio.html
www.domain-name.com/site-name/pt-pt/sobre.html
我设法获得了页参数。这就是我所拥有的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /site-name/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)/?$ index.php?page=$1 [L]
</IfModule>
我不知道如何在所有“页面”参数中添加.html,并且正则表达式真的不是我的东西,所以我很难搞清楚如何“ - ” “ lang ”参数的部分将起作用。我注意到,当输入错误的网址时,网站会变得奇怪。
稍后它将拥有自己的域名,但我想从“ RewriteBase / site-name / ”更改为“ RewriteBase / ”会修复它,对吧?
我对此并不了解,但我认为也缺少一些标志(出于搜索引擎优化目的)。
答案 0 :(得分:0)
您可以使用:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /site-name/
RewriteRule ^([^/]+)/(.+?)\.html?$ index.php?lang=$1&page=$2 [NC,L,QSA]
</IfModule>