htaccess重写以索引为基础的url查询字符串

时间:2019-05-03 15:57:00

标签: .htaccess web

这个地方有新海报但是长期用户。

我有一个使用index.php的网站,然后有一个viewpost.phpcategorypost.php

viewpost用于查看主要帖子,categorypost用于查看“ webdesign”等类别下的帖子。

view post slug由查询字符串组成,例如:

viewpost.php?postType=services&postCategory=webdesign&postTitle=somepost

然后我希望将其重写为

website/services/webdesign/somepost

第一个问题:

这是通过使用3个文件来做到这一点的正确方法,还是我创建的工作量超出了需要?

第二个问题:

如果我在正确的路径上,或者至少在正确的路径上,如何进行重定向?

我已经看到了大约30条左右的帖子,但发现很难理解,最终得到500条响应或只是直接重定向。

RewriteRule ^(.*)$ viewpost.php?postTag=$1&postCategory=$2&postTitle=$3 [QSA,L]

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

如果这些特定链接都可以以相同的词开头,则它是最简单的,在这种情况下为“网站”。因为这样可以避免错误地使用缺少页面的现有文件夹。

RewriteRule ^website/([^/]+)/([^/]+)/([^/]+)/?$ viewpost.php?postTag=$1&postCategory=$2&postTitle=$3 [NC,QSA,L]

但是,如果不是这种情况,则可以使用:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ viewpost.php?postTag=$1&postCategory=$2&postTitle=$3 [QSA,L]