htaccess文件使用短划线或下划线两者运行

时间:2013-11-26 04:18:59

标签: regex apache .htaccess mod-rewrite

我有我的网站,我想要这样的东西:

filename是:apple_banana.php

现在我想用下划线“apple_banana.php”或破折号“apple-banana.php”双向访问此文件。但文件名将保留“apple_banana.php”。我不想要2个文件。那我怎么能用htaccess呢?

我希望这是我的整个项目文件。

感谢, AJ

1 个答案:

答案 0 :(得分:2)

将此代码放在DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteRule ^(apple)-(banana\.php)$ $1_$2 [L,NC]

使这个通用(适用于所有网址)和任意数量的破折号:

RewriteRule ^([^-]*)-+(.*)$ $1_$2 [L]
根据评论

更新

# To externally redirect
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(apple/apple)_(banana\.php)[\s?] [NC]
RewriteRule ^ /%1-%2 [R=301,L,NE]

# internal rewrite
RewriteRule ^(apple/apple)-(banana\.php)$ $1_$2 [L,NC]