Apache Mod_rewrite.htm到伪子目录
我有一个CMS网站,它使用mod_rewrite使URL看起来更干净。以前,干净的URL有扩展名.htm,但我想将其转换为假子目录,即:Apache Mod_rewrite.htm到伪子目录,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有一个CMS网站,它使用mod_rewrite使URL看起来更干净。以前,干净的URL有扩展名.htm,但我想将其转换为假子目录,即: http://www.example.com/pagename/ 我有两个重写规则来重写旧方案和潜在的新方案: RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+).htm$ index.php?page=$1 [QSA] RewriteCond %{REQUEST_FILENAME} !-d Rewr
http://www.example.com/pagename/
我有两个重写规则来重写旧方案和潜在的新方案:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ index.php?page=$1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ index.php?page=$1 [QSA]
我的问题是,我试图使用的将旧URL重定向到新URL的规则没有任何作用
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+).htm$ $1/ [R=302,NC,QSA]
不能对同一模式使用两个规则,因为将只应用其中的第一个规则。尝试用新的“重定向”规则替换“重写”规则,以重定向旧URL,而不是仅重写:
# redirect foo.htm to foo/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.htm$ $1/ [R=301,NC]
# rewrite foo/ to index.php?page=foo
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ index.php?page=$1 [QSA]
谢谢对于记录,我使用的规则是:RewriteRule^(+)\.htm$[R,NC,QSA]