【发布时间】:2012-03-18 16:34:29
【问题描述】:
我又来了,带着重写 URL 的查询 :(.
我正在使用 htaccess 进行重写,下面是我的 htaccess 代码:
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !\.\w+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) /$1/ [R,L]
RewriteCond %{REQUEST_URI} ^/([\w\d-]+)/$ [NC]
RewriteRule ^ /?file_name=%1 [L,QSA]
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{QUERY_STRING} (?:(.*)&)?file_name=([\w\d-]+)(.*) [NC]
RewriteRule ^ %2/?%1%3 [L,R]
在询问我的问题之前,让我简要解释一下上述代码的工作原理。我有一个类似 http://www.mysite.com/ (for index) 的 URL,其他页面可以通过使用名为 file_name=page_name 的参数来执行,例如 http://www.mysite.com/?file_name=my_blog。我的 htaccess 正在帮助我排除 file_name 参数并创建一个新 URL,例如 http://www.mysite.com/my_blog/。
现在我有一个问题:
- 现在已经有一个参数 file_name,现在我想提供额外的参数,例如 http://www.mysite.com/?file_name=my_blog&blog_alias=welcome-to-new -generation 并希望它看起来像 http://www.mysite.com/my_blog/welcome-to-new-generation/。因此,如果我添加任意数量的参数,则应删除参数名称,并且只有参数值带有斜杠。
请注意:参数名称可以是任何值。
请帮忙。
【问题讨论】:
标签: regex .htaccess mod-rewrite recursion url-rewriting