使用 mod_rewrite 从 url 中删除页面 ID
Remove page id from url with mod_rewrite
我想从 www.site.com/page.php?url=string.html
升到 www.site.com/string.html
我的 .htaccess 看起来像这样:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).html$ page.php?url=
RewriteRule ^([a-zA-Z0-9-/]+).html/$ page.php?url=
但它什么也没做。
尝试以下重写:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /cms/page\.php\?url=([^\s&]+) [NC]
RewriteRule ^page\.php$ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*\.html$ /cms/page.php?url=[=10=] [QSA,L]
编辑
由于页面位于 /cms
目录中,因此更新了规则以反映相同的内容。
我想从 www.site.com/page.php?url=string.html
升到 www.site.com/string.html
我的 .htaccess 看起来像这样:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+).html$ page.php?url=
RewriteRule ^([a-zA-Z0-9-/]+).html/$ page.php?url=
但它什么也没做。
尝试以下重写:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\ /cms/page\.php\?url=([^\s&]+) [NC]
RewriteRule ^page\.php$ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*\.html$ /cms/page.php?url=[=10=] [QSA,L]
编辑
由于页面位于 /cms
目录中,因此更新了规则以反映相同的内容。