首页 文章

Htaccess 301重定向动态网址

提问于
浏览
3

我需要将带有参数的动态URL重定向到子文件夹URL . 源URL的长度/级别可能不同 .

一个例子是:

Source:

http://www.example.com/dir/?lang=en

Desired:

http://www.example.com/dir/en

另一个是:

Source:

http://www.example.com/dir/subdir/?lang=en

Desired:

http://www.example.com/dir/subdir/en

我正在使用WordPress,因此我的 .htaccess 中存在一些现有代码,这些代码需要使用重定向 . 我现有的 .htaccess 看起来像这样:

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

我尝试搜索整个网络,然而,没有解决方案/答案似乎适合这种特殊情况 . 有谁可以提供帮助?

1 回答

  • 1

    通过 httpd.conf 启用mod_rewrite和.htaccess,然后将此代码放在 .htaccess DOCUMENT_ROOT 目录下:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{QUERY_STRING} !^lang=.+ [NC]
    RewriteRule ^(.+?)/([^/]+)/?$ $1/?lang=$2 [L,QSA]
    

相关问题