mod用两个变量重写url

时间:2016-10-20 15:58:02

标签: php .htaccess mod-rewrite

我想重写post.php?id = 1& title = test to post / 1 / test

我有这段代码:

RewriteRule ^post/([^/]+)/([^/]+)/?$ post.php?id=$1&title=$2 [L,QSA]

这只适用于我在我的php文件中重命名post.php链接到/ post。我想重写网址,以便我不需要编辑任何链接。

类似于以下内容:

RewriteCond %{THE_REQUEST} \s/+(post)\.php[?/\s] [NC]
RewriteRule ^ %1 [R=301,L]

RewriteRule ^(post)/?$ $1.php [L]

1 个答案:

答案 0 :(得分:1)

您可以使用:

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+post\.php\?id=([^&]+)&title=([^\s&]+) [NC]
RewriteRule ^ /post/%1/%2? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^post/([^/]+)/([^/]+)/?$ post.php?id=$1&title=$2 [L,QSA,NC]

但说“我不需要编辑任何链接”是错误的。因为它是一种纠正已引用的旧链接的方法,所以不会阻止您更改页面中的代码。因为HTML代码仍然包含错误的链接......