AMRQ(另一个mod_rewrite规则任务)

时间:2014-04-28 12:28:24

标签: .htaccess mod-rewrite

这里的背景: 我想,无需修改我的PHP代码中的URL,进入地址栏

http://website.tdn/somepath/news-246-Some-title.html

而不是:

http://website.tdn/somepath/lireNews.php?idnews=246&titre=Some-title

(意味着我希望两个网址都有效,但是lireNews.php?blah必须重新修改为新闻 - ### - title.html) 这是我的htaccess文件:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^lireNews.php?idnews=([0-9]+)\&titre=(.*)\$ news-$1-$2.html [NC,R,L]

实际上,这段代码根本不起作用,news-246-Some-title.html给了我404错误和lireNews.php?idnews = 246& titre = Some-title给了我没有重定向的网页。

感谢阅读。

1 个答案:

答案 0 :(得分:2)

考虑您的评论,您可以将此代码放入htaccess(somepath文件夹中)

RewriteEngine on
RewriteBase /somepath/

RewriteCond %{THE_REQUEST} /lireNews\.php\?idnews=([0-9]+)&titre=([^\s]+) [NC]
RewriteRule . news-%1-%2.html? [R=301,L]

RewriteRule ^news-([0-9]+)-(.+)\.html$ lireNews.php?idnews=$1&titre=$2 [L]

如果将其移至root子域文件夹,您只需将RewriteBase /somepath/替换为RewriteBase /