我有一个PHP网站。我想将PHP页面名称转换为SEO友好页面名称。 所以,首先我要转换主页,我想删除提到的“索引”。作为一个多语言网站,主页有英文版和法文版。
我想:
<h4>Center of text part</h4>
<div>
<img src="http://beerhold.it/97/50">
<h5>Hello</h5>
</div>
<hr>
<h4>Center of vieport</h4>
<div class="div">
<img class="img" src="http://beerhold.it/97/50">
<h5>Hello</h5>
</div>
成为
www.abc.com/index.php?lang=fr
然而,在那之后,我希望其他页面保留其名称,例如: 我想要:
www.abc.com/fr/
成为
www.abc.com/links.php?lang=fr
我也希望网址在没有尾部斜杠的情况下工作。 所以这个:
www.abc.com/fr/links/
应该提供与此相同的页面:
www.abc.com/fr/links
和此:
www.abc.com/fr/links/
应该提供与此相同的页面:
www.abc.com/fr
到目前为止,我的htaccess文件的内容如下。 它使我能够正确地更改链接页面,但是,我无法弄清楚如何以我上面描述的方式执行索引页面(此外,下面的代码可能非常糟糕,因为我只是一个启动器htaccess所以不要拖延批评,我主要是通过猜测推进到目前为止......)
www.abc.com/fr/
答案 0 :(得分:0)
我会明确地匹配允许的语言,以便更好地控制匹配的URL。
如果你有&#34; fr&#34;和&#34; en&#34;允许,它应该使用以下内容:
RewriteEngine On
# Rewrite /fr/links and /fr/links/ to links.php?lang=fr
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(en|fr)/(.+)(/?)$ $2.php?lang=$1 [L]
# Rewrite /fr and /fr/ to index.php?lang=fr
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(en|fr)(/?)$ index.php?lang=$1 [L]
虽然这应该有效,但我宁愿在实际实施中采用不同的路线。我会将所有请求重定向到单个index.php文件并在那里进行匹配路由,这样可以使.htaccess保持简洁:
RewriteEngine On
# Rewrite everything not existing to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
并在index.php中解析语言和页面并适当地进行包含。