.htaccess 如何在重写规则中处理连字符(-)符号?

.htaccess 如何在重写规则中处理连字符(-)符号?,.htaccess,mod-rewrite,rewrite,.htaccess,Mod Rewrite,Rewrite,我提出了以下重写规则,将php文件作为目录处理: 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页。 不起作用的示例: www.domain.com/stack-ove

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

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页。 不起作用的示例:

www.domain.com/stack-overflow -> 404 page
www.domain.com/stack-overflow/ -> 404 page
当前重写代码:

# 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

只需替换以下内容:

\w
。。。为此:

[\w-]
Apache的mod_重写基本上遵循Perl regexp语法