我正在使用以下参数开发一个支持 PHP 中多种语言(英语和西班牙语)的网站:
www.website.com/contact?lang=en
www.website.com/contact?lang=es
是的,没有扩展名 .php ......我知道这是一种不好的做法,所以我想要这个:
www.website.com/en/contact
www.website.com/es/contact
我在 stackoverflow 中阅读了其他帖子,但是我不想使用 PHP 框架,并且我读到我必须使用 Mod Rewrite(再次因为我已经使用它来删除扩展名)。事实上,我读过这篇文章(以及其他文章),但没有任何效果。
完成后,我在谷歌页面中阅读了我必须使用的内容:
<link rel="alternate" href="http://www.website.com/" hreflang="x-default" />
这个对吗?
谢谢
编辑1:
我的 .htaccess 的内容是:
RewriteBase /
#Prevent directory listing
Options All -Indexes
#Disable Etags
Header unset ETag
FileETag None
#Prevent viewing of .htaccess
<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</Files>
RewriteEngine on
#Redirect non-www/www
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
#RewriteCond %{HTTPS} off
#RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
#RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Options +FollowSymlinks -MultiViews
#Rewrite url
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^([^/]+)/([^/]+) /$2?lang=$1 [L,NC,QSA]