【发布时间】:2019-06-07 19:14:56
【问题描述】:
我知道关于这样的问题有一百万个类似的问题,但显然有很多我不明白,因为我无法为我(据我所知)相当简单的问题得出答案或解决方案。
基本上,我正在尝试备份一个旧网站,但这次想要更专业的外观,包括清理 URL。一个典型的页面如下(目前在本地托管,但将在未来几天内分配一个域):
192.168.0.200/album-reviews.php?albid=22
使用以下代码,我已经能够通过在浏览器中手动输入 192.168.0.200/album-reviews/22 来实现上述示例页面加载:
RewriteRule ^album-reviews/([0-9a-zA-Z]+) album-reviews.php?albid=$1 [NC,L]
但是,我还想要当在我的网站上点击链接时,它会将用户定向到 /album-reviews/22 而不是 album-reviews.php?albid=22。目前获得干净 URL 的唯一方法是将其手动输入栏中,我网站上的链接没有得到干净的 URL,我一直在使用的代码(并且一直无法工作)基于我发现的来源是这样的:
RewriteCond %{THE_REQUEST} /album-reviews/?(?:\.php)?\?albid=([0-9a-zA-Z]+)
RewriteRule ^ /album-reviews/%1? [L,R]
因此,如果有人能阐明我如何让所有这些工作按要求进行,我将不胜感激,我希望我的问题得到了适当的阐述。
附带说明,如果我也想在 URL 中包含帖子标题,如下所示:
192.168.0.200/album-reviews.php?albid=22&ptitle=我的第一篇文章
如何改变任何代码使其变成这样:
192.168.0.200/album-reviews/22/我的第一篇文章
谢谢。
【问题讨论】:
-
另请参阅Reference: mod_rewrite, URL rewriting and "pretty links" explained,了解更一般/持久的修复。为了调试这个,启用并提供重写日志;将其包含在您的问题中。