2015-12-02 139 views
0

我尝试了几个重定向,但没有为我的需要工作。你能帮我弄清楚这个吗?我知道,它已经被回答了很多次,但我无法完成它的工作。谢谢。.htaccess重定向与参数

我需要重定向fromto

例子:

/demo/details?acronym=text15 

/demo/text15 

/demo/details?acronym=text-c15 

/demo/text-c15 

正确的重定向为:

#redirect from "demo/details\?acronym=some-string" to "/demo/some-string" 
RewriteCond %{THE_REQUEST} /details\?acronym=([^\s]+) [NC] 
RewriteRule^/demo/%1? [NC,L,R] 

回答

0

它是非常简单

RewriteEngine On 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^demo/([a-z0-9-]+)$ /demo/details?acronym=$1 [QSA,NC,L] 

,在这里最重要的部分是你要调用格式化的链接不是原来的链接 例如/演示/ text15

这就是所有的人

0

您可以使用下面的规则在你的.htaccess:

RewriteEngine on 

#redirect from "demo/details/acronym\?text=foo" to "/demo/foo" 
RewriteCond %{THE_REQUEST} /details/acronym\?text=([^\s]+) [NC] 
RewriteRule^/demo/%1? [NC,L,R] 

#skip the rule if the request is for dir 
RewriteCond %{REQUEST_FILENAME} !-d 

#skip the rule if the request is for file 
RewriteCond %{REQUEST_FILENAME} !-f 

#rewrite any other request to "/demo/details?acronym=" 
RewriteRule ^(?:demo/)?([^/]+)/?$ /demo/details/acronym?text=$1 [NC,L]