如何重定向重写的URL

时间:2018-05-26 11:21:31

标签: .htaccess

使用以下规则重写URL。

RewriteEngine on
RewriteRule ^([a-zA-Z]+)/$ category?id=$1

改变

http://localhost/newsite/category?id=home

到以下结构

http://localhost/newsite/home/

现在,我尝试将newsite/category?id=home重定向到newsite/home/,使用重定向规则制作干净的网址,例如301,重定向,但不起作用。

2 个答案:

答案 0 :(得分:2)

您可以在newsite/.htaccess中使用这组规则:

RewriteEngine on
RewriteBase /newsite/

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

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/$ category.php?id=$1 [L,QSA]

答案 1 :(得分:0)

你错过了重写声明中的.php

RewriteRule ^([a-zA-Z]+)/$ category?id=$1

更改为

RewriteRule ^([a-zA-Z]+)/$ category.php?id=$1