如何使用Mod Rewrite忽略URL的部分?

时间:2016-10-14 12:45:10

标签: apache .htaccess mod-rewrite

我正在使用Mod Rewrite来创建有吸引力的网址。我想了解如何忽略网址的某些部分?

例如,我的原始网址是: /file.php?token=771736eb78bc3b6f96d5c066069567c0c219bf65/

我已经编写了一个Mod Rewrite代码,将其转换为: /file/771736eb78bc3b6f96d5c066069567c0c219bf65/

RewriteEngine On
RewriteRule ^file/([^/]*)$ /file.php?token=$1 [L]

但是,我想实现一个URL: /file/771736eb78bc3b6f96d5c066069567c0c219bf65/random-bits-here/

最后的随机位没有用处(装饰除外)。如何告诉Mod Rewrite忽略URL的这一部分?

3 个答案:

答案 0 :(得分:2)

只需像这样调整你的正则表达式

RewriteRule ^file/([^/]+)/?(.*)$ /file.php?token=$1 [NC,L]

答案 1 :(得分:0)

如果您不需要,您应该将第二组字符添加到RewriteRule并忽略捕获的表达式。

RewriteEngine On
RewriteRule ^file/([^/]*)/([^/]*)/$ /file.php?token=$1 [L]

或者,如果您希望将其传递给您的脚本。:

RewriteEngine On
RewriteRule ^file/([^/]*)/([^/]*)/$ /file.php?token=$1&extra=$2 [L]

答案 2 :(得分:0)

简单地省略$符号,强制字符串结束(路径):

RewriteEngine On
RewriteRule ^file/([^/]*) /file.php?token=$1 [L]