我想重写对index.php的所有请求?r = 这样/某事就变成了/index.php?r=sth
我已应用此规则有效:
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png|pdf|php)$ [NC]
RewriteRule ^(.+)$ index.php?r=$1 [L]
但是我想要重定向,例如
Redirect 301 /sth /sth-new
它会起作用,但网址会变为:
/sth-new?r=sth
您有任何解决方案 - 有关为何发生这种情况的建议吗? 如何实现全局规则并具有简单的重定向?
答案 0 :(得分:0)
你可以这样做:
RewriteRule ^sth/?$ /sth-new? [L,R=301]
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{REQUEST_URI} !\.(jpg|css|js|gif|png|pdf|php)$ [NC]
RewriteRule ^(.+)$ index.php?r=$1 [L]
您应该在内部重写规则之前保留外部重定向规则。