htaccess重写和重定向URL

时间:2014-06-02 21:07:10

标签: php .htaccess mod-rewrite redirect

我正在寻找可以做到这一点的htaccess规则:

原始网址 ?til=main 替换为: /main

如果是这样的话:

原始网址 /index.php?til=main?til=main 重定向至: /main

直到现在我只有这段代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?til=$1 [L,QSA]

它加载/main但在其后面加载/index.php?til=main

2 个答案:

答案 0 :(得分:2)

尝试:

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+(?:index\.php|)\?til=([^&\ ]+)
RewriteRule ^ /%1? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?til=$1 [L,QSA]

答案 1 :(得分:2)

这应该有效:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?til=(.*)\ HTTP [OR]
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /index\.php\?til=(.*)\ HTTP
RewriteRule ^ /%2? [R=301,L]

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

它应该将index.php?til=main?til=main重定向到/main