使用mod_rewrite从url中删除页面ID

时间:2015-12-01 12:28:59

标签: regex apache mod-rewrite url-rewriting friendly-url

我想从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=$1
RewriteRule ^([a-zA-Z0-9-/]+).html/$ page.php?url=$1

但它没有做任何事情。

1 个答案:

答案 0 :(得分:1)

请尝试以下重写:

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=$0 [QSA,L]

修改

由于页面位于/cms目录中,因此更新规则以反映相同的内容。