如何使用htaccess重写带有Id和文本的URL

时间:2013-05-30 03:50:03

标签: regex .htaccess url-rewriting

其实我不知道正则表达式等,我想用.htacess重写URL。我有以下网址

http://www.example.com/post.php?post_id=114&post_txt=this-should-not-happen-again

我想像这样重写它

http://www.example.com/114/this-should-not-happen-again

我应该在.htaccess文件中写什么来实现我的目标?

3 个答案:

答案 0 :(得分:1)

尝试一下: 它查找数字,斜杠,任意字符。它会在$1中插入数字,在$2中插入任意字符。

RewriteEngine On

RewriteRule ^(\d+)/(.+)$ /post.php?post_id=$1&post_txt=$2 [NC,L]

答案 1 :(得分:0)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ /post.php?post_id=$1&post_txt=$2 [L,QSA]

答案 2 :(得分:0)

RewriteEngine on
RewriteRule ^/post.php?post_id=(\d+)&post_txt=(.*)$ http://www.example.com/$1/$2 [R=301,L]

此外,超级用户here

上存在一个非常类似的问题