1

我想更改显示的客户端 URL 的结构。我不太熟练使用 .htaccess 文件的正则表达式和编码。基本上,我有一个看起来像这样的结构:

www.abc.com/login/?lang=es

我希望它在地址栏中显示为:

www.abc.com/login/es

所以请告诉我如何覆盖我的 .htaccess 文件中的现有 url。

谢谢

编辑

我的目录列表

`

我的项目

------------- >我的申请

------------- >settings/url 目录

媒体
模板`

4

1 回答 1

2

您需要做的第一件事是浏览所有代码并将登录链接更改为如下所示:

www.abc.com/login/es

它将为您节省额外的连接和重定向。

然后,您需要www.abc.com文档根目录中的 htaccess 文件中的规则,以便在发出请求时将客户端重定向/login/?lang=something到看起来更漂亮的 URL:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /login/?\?lang=([^&\ ]+)
RewriteRule ^ /login/%2? [L,R=301]

然后,您需要规则在内部将看起来更好看的 URL重写具有查询字符串的 URL:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?login/(.*)$ /login/?lang=$1 [L]

如果基本 URI 已更改(例如,更改/login/login/es),您可能需要在登录页面中包含基本 URI,以便相关链接仍能正确解析。您可以通过在页面标题中添加此标签来做到这一点:

<base href="/">
于 2012-10-26T04:40:24.217 回答