1

我注意到已经有与我非常相似的问题,已经在这个网站上得到了回答。但是我一直在努力没有成功实施那里提供的解决方案,所以我敢再次提出这个问题。能否请你帮忙?

我在 wordpress 中开发了一个网站,并将所有内容放在一个特定的子目录下(我的主机提供商使用 Apache,不用说),这样:

  1. 所有文件都在/public_html/es/中(由于某些历史原因,子目录的名称是“es”,我只是在这里指定它,因为它是一个非常常见的字符串,可能需要非常准确的正则表达式)。
  2. 一切正常,我可以导航到 URL www.example.com/es上的站点,然后点击链接,例如www.example.com/es/whatever1/whatever2/
  3. 此外,我实现了一个多语言插件,当我想切换到另一种语言(本例中为意大利语)时,该插件允许页面显示为www.example.com/es/whatever1/whatever2/?lang=it 。
  4. 最后,我对.htaccess文件进行了如下编码,以允许访问者只需输入域名即可访问该页面:

/public_html/.htaccess

#
# /public_html/.htaccess
#
# HISTORY
# 20160309 pdoc (B) ADDED CODE TO ALLOW LOADING OF FONT-AWESONE ICONS ALSO 
#

# 20160309 pdoc (B) added next 3 lines
<FilesMatch ".(eot|ttf|otf|woff)">                  
    Header set Access-Control-Allow-Origin "*"  
</FilesMatch>

RewriteCond %{HTTP_HOST} ^example.com$ [OR]
RewriteCond %{HTTP_HOST} ^http://example.com$ [OR]
RewriteCond %{HTTP_HOST} ^https://example.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.com$ [OR]
RewriteCond %{HTTP_HOST} ^http://www.example.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/es" [R=301,L]

/public_html/es/.htaccess

#
# /publi_html/es/.htaccess
# CHANGES:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /es/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /es/index.php [L]
</IfModule>
# END WordPress

从技术上讲,它似乎工作正常:您可以通过键入“example.com”访问该站点,然后浏览它,因为 URL 已转换为“example.com/es”。

现在......出现在浏览器 URL 字段中的“ /es/ ”字符串很烦人,有时甚至会产生误导,因为它让一些访问者相信他们在网站的“西班牙语”版本中,而该字符串只是一个片段的路径。

我不想将整个站点移动到/public_html下的另一个路径,有没有办法可以从浏览器 URL 字段中隐藏“ /es ”字符串?当然,我只需要隐藏第一次出现的“/es”(即我想要那个

example.com/es/thes子目录/ ? lang =xx

显示为

example.com/th es子目录/?lang=xx

)。

正如最初评论的那样,我无法成功实施我在 stackoverflow 其他地方找到的任何建议。

非常感谢您耐心阅读这篇长文。

4

0 回答 0