.htaccess:重写为新的URL结构

时间:2016-09-12 12:10:09

标签: .htaccess mod-rewrite url-rewriting

我正在尝试将以下网址重定向到新结构:

  • 之前http://example.com/profile/?name=some-one
  • 之后http://example.com/profile/some-one/

some-name将根据用户的帐户发生变化,因此我希望该部分是动态的。这就是我对.htaccess

的看法
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{QUERY_STRING} (^|&)name=(.*)
RewriteRule ^profile/$ /profile/$1/? [L,R=301]

根据这个online htaccess tester,结果就是这样:

http://example.com/profile//

有什么帮助澄清为什么它没有延续动态some-name?如果重要,这适用于已经具有以下内容的WordPress网站:

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

1 个答案:

答案 0 :(得分:1)

尝试

RewriteCond %{HTTP_HOST} ^example\.com$
RewriteCond %{QUERY_STRING} (^|&)name=(.*)
RewriteRule ^(.*)$ /profile/%2/? [R=301,L]

RewriteCond

中捕获的变量使用%