繁体   English   中英

.htaccess重写器“循环”

[英].htaccess rewriterule “loop”

目前,我的.htaccess文件中有此行,从而使页面的URL“漂亮”。

RewriteRule ^([A-Za-z0-9-]+)/$ /directory/?type=page&title=$1 [L]

但是,有时我会有子页面( /page/sub-page/sub-page/ ),但是此行仅支持一个级别( /page/ )。

如何更改此代码以支持子页面(任意数量),并使title变量类似:

&title=page/sub-page/sub-page

/是分隔符。

我知道这绝对是一个巨大的帮助:

.htaccess中的RewriteRule循环不起作用

但是,由于我缺乏对正则表达式和mod-rewrite的了解,因此我不知道如何使其与我已经拥有的东西一起正常工作。

尝试这个:

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]

不要因为NC标志而担心AZ

在进行了正则表达式研究并进行了一些测试之后,似乎这是我的问题的答案:

RewriteRule ^(([a-zA-Z0-9-]+)/(([a-zA-Z0-9-]+)\/?)+)$ /directory/?type=page&title=$1 [L]

我更改了以前的代码,并允许支持多个子目录。 然后,我将其放入捕获组,并将该数据放入title变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM