【发布时间】:2017-10-31 12:57:46
【问题描述】:
我正在尝试在我们的论坛中设置规范链接,我需要提出一个重写规则,该规则将忽略不属于 URL 的斜杠。
正确的 URL 如下所示:
http://www.truckingtruth.com/truckers-forum/Topic-20315/Page-1/speak-to-recruiter
为此,我使用以下 mod_rewrite 规则来传递“主题”、“页面”和“主题字符串”变量:
^Topic-(.*)/Page-(.*)/(.*)$ index.html?topic=$1&page=$2&subjectString=$3
但有时指向我们网站的不正确链接或评论中的不正确链接会在不属于该网址的 URL 中添加斜线,从而违反规则。示例:
当这种情况发生时,传递的变量是:
主题 = "1652"
page = "1/www.truckingtruth.com/free_truck_driving_schools/swift"
subjectString = "how-to-use-the-qualcomm"
我想要它做的是通过:
主题 = "1652"
page = "1"
subjectString = "www.truckingtruth.com/free_truck_driving_schools/swift/how-to-use-the-qualcomm"
如何创建一个重写规则,将“Page-1”之后的所有内容作为主题字符串传递,即使其中有斜线?
【问题讨论】:
-
topic和page总是整数吗? -
没有。页面可以是“最新”或“最后”或整数。主题始终是整数。
-
^Topic-(\d*)/Page-([^/]*)/(.*)$应该这样做,regex101.com/r/7TNSa1/1 -
做到了!惊人的!万分感谢。我不知道 regex101.com 甚至存在,所以这是双重奖励。谢谢。您能否将您的答案作为常规回复,以便我将其标记为正确?
标签: apache .htaccess mod-rewrite url-rewriting