我有一个URL,有时会有一个或多个参数,我希望能够相应地重写。
网址如下:
/index.php?pagetitle=Home
我已设法使用以下内容显示此ID:
/Home
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+) index.php?pagetitle=$1 [NC,L]
我也希望能够使用相同的网址,但文章ID
.com/index.php?pagetitle=Home&articleid=20
我想这样显示:
.com/Home/20
但我似乎无法弄清楚如何让它在多个参数上工作。
更新: 好的,所以我设法让以下工作使用: 的index.php PAGETITLE = $ 1和;条款ArticleID = $ 16
显示为: 的.com /主页/ 20
我试图更进一步,并且能够使用文章标题以及我尝试的规则如下。
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articletitle=$2&articleid=$3 [NC,L,QSA]
所以会显示为: 的.com /主页/ ArticleTitle / 20
但它不想为我工作是否有人知道我做错了什么,并提前再次感谢。
http://karpium.co.uk/Home/Baits/20 - 此网址正常工作
http://karpium.co.uk/Home - 但是这个网址在使用pagetitle =和articleid =
的情况下无法正常工作答案 0 :(得分:0)
您可以使用以下规则:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articleid=$2 [NC,L,QSA]
答案 1 :(得分:0)
好吧好像我已经使用3种不同的重写规则修复了它,如下所示:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+)$ index.php?pagetitle=$1 [NC,L,QSA]
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))?/?$ index.php?pagetitle=$1&articletitle=$2 [NC,L,QSA]
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articletitle=$2&articleid=$3 [NC,L,QSA]
如果有人可以为我的正则表达式的一些部分提供一些亮点,我将非常感激:
以下是什么意思?
:/
?/?
再次感谢所有帮助:)