仅当路径以条件开始/结束时才重写URL

时间:2017-10-24 06:58:46

标签: .htaccess mod-rewrite url-rewriting

我正在使用此重写规则:

RewriteCond %{REQUEST_URI} /([a-z\-A-Z0-9]+)-model/([a-z\-A-Z0-9]+)/$ [NC]
RewriteRule . p.php?model=%1&media=%2 [L,QSA]

所以工作网址如下所示:

example.com/foo-model/foo/

但是,如果我输入此网址,它也会起作用:

example.com/random_path/foo-model/foo/random_path/

我该如何避免这种情况?

1 个答案:

答案 0 :(得分:0)

在重写条件的开头添加^应该可以解决问题:

RewriteCond %{REQUEST_URI} ^/([a-z\-A-Z0-9]+)-model/([a-z\-A-Z0-9]+)/$ [NC]
RewriteRule . p.php?model=%1&media=%2 [L,QSA]

这将告诉规则开始搜索第一个'/',而不是URL中的任何'/'。

相关问题