我正在寻找可以做到这一点的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
答案 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