我目前在.htaccess文件中有这一行,使网页“非常”。
RewriteRule ^([A-Za-z0-9-]+)/$ /directory/?type=page&title=$1 [L]
但是,我有时会有子页面(/page/sub-page/sub-page/
),但这一行只支持一个级别(/page/
)。
如何更改此代码以支持子页面(任何数量)并使title
变量类似于:
&title=page/sub-page/sub-page
/ 是分离者。
我知道这绝对是一个巨大的帮助:
RewriteRule loop in .htaccess not working
然而,由于我对正则表达式和mod重写缺乏了解,我不知道如何使它与我已有的正常工作。
答案 0 :(得分:0)
试试这个:
AllowEncodedSlashes On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([/a-z0-9-]+)/?$ /directory/?type=page&title=$1 [NC,B,L]
由于A-Z
标志,不要担心NC
。
答案 1 :(得分:0)
在做了一些正则表达式研究并做了一些测试后,似乎这就是我的问题的答案:
RewriteRule ^(([a-zA-Z0-9-]+)/(([a-zA-Z0-9-]+)\/?)+)$ /directory/?type=page&title=$1 [L]
我修改了以前的代码并允许支持多个子目录。然后我将其放入捕获组并将该数据放入title
变量。