简单的mod重写查询字符串但仍然失败

时间:2016-03-20 02:33:56

标签: php apache .htaccess mod-rewrite

我想创建.htaccess mod重写但仍有问题。

假设我创建了友好的URL,如下所示:

mydomain.com/mypage/12345/title-of-news

我希望友好的URL处理隐藏进程中的以下URL:

mydomain.com/index.php?p=mypage&idnews=12345

“p”和“idnews”的值是动态的,因此它们将具有不同的值。

我尝试了下面的代码,但仍然无法正常工作。哪里不对了?

RewriteBase /
RewriteCond %{QUERY_STRING} p=(\w+)&idnews=(\d+)
RewriteRule ^index.php /%1/%2 [L,R=301]

任何帮助将不胜感激。对不起,如果这是重复的问题,如果不介意请告诉我答案链接。非常感谢。

2 个答案:

答案 0 :(得分:1)

我认为你不需要你在那里写的RewriteCond。

您可以使用以下规则

RewriteRule ^/?([0-9a-zA-Z_.-]+)/([0-9]+)/([0-9a-zA-Z_.-]+)$ index.php?p=$1&idnews=$2 [L]

答案 1 :(得分:0)

如果您想将{% increment variable %} 更改为index.php?p=foo&idnews=bar,请尝试以下规则:

/foo/bar