首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理重写规则中的连字符?

如何处理重写规则中的连字符?
EN

Stack Overflow用户
提问于 2012-11-09 15:41:31
回答 1查看 532关注 0票数 2

我提出了以下重写规则,将php文件作为目录进行处理:

代码语言:javascript
复制
www.domain.com/name.php -> www.domain.com/name/
www.domain.com/name -> www.domain.com/name/
www.domain.com/name/ -> www.domain.com/name.php

上面的东西是有效的,但是当标题中有连字符(-)时,它不会在结尾添加尾部斜杠,它将以404页结束。不起作用的例子:

代码语言:javascript
复制
www.domain.com/stack-overflow -> 404 page
www.domain.com/stack-overflow/ -> 404 page

当前重写代码:

代码语言:javascript
复制
# 404 page
ErrorDocument 404 /404.php

# Add automatic a trailer slash on the end
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]

# Decline direct access to .php files, redirect .php to name/
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(\w+)\.php$ $1/ [R=301]
# name/ to the right .php file
RewriteRule ^(\w+)/?$ /$1.php

有没有人有办法处理标题中有连字符(-)的问题?

提前谢谢。致以亲切的问候,M

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-09 17:05:14

只需替换以下内容:

代码语言:javascript
复制
\w

..。有了这个:

代码语言:javascript
复制
[\w-]

Apache的mod_rewrite基本上遵循Perl regexp语法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13304040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档