url重写不能自动工作

时间:2013-12-20 14:01:10

标签: apache .htaccess url-rewriting

我的网址重写有问题。

我想将动态链接example.com/new.php?name=latest-news更改为example.com/latest-news-of-the-day我的.htaccess文件配置

 RewriteEngine on
 RewriteRule (.*)-of-the-day$ new.php?name=$1[NC,L] 

现在页面网址仍然相同,但如果我手动编写example.com/latest-news-of-the-day则可行。我想根据.htaccess文件显示新的网址,但它没有自动显示。

2 个答案:

答案 0 :(得分:0)

您需要添加其他规则,以便在浏览器请求new.php页面时对其进行外部重定向:

RewriteCond %{THE_REQUEST} \ /+new\.php\?name=([^&\ ]+)
RewriteRule ^ /%1-of-the-day? [L,R=301]

答案 1 :(得分:0)

您的传入 URI是/<something>-of-the-day,您想“无形地”将其更改为真实文件/new.php?name=<something>吗?

RewriteEngine On
RewriteRule  ^(.*)-of-the-day/?$  /new.php?name=$1  [NC,QSA]

如果没有RewriteCond,则不需要[L]标志,并且[QSA]标志保留随原始URI一起提供的任何查询字符串。请注意,它不会检查原始URI是否是现有目录或文件(您可以添加RewriteCond语句来限制它)。