动态.htaccess规则

时间:2011-10-25 03:29:14

标签: apache .htaccess redirect

自去年以来,我更新了我的网站两次,自第一个版本以来,我有不同的网页名称。是否可以在apache中创建动态规则?

例如:

我用这些页面(例子):

  • / abc123(版本1)
  • / abc_123(第2版)
  • / abc-123 /(第3版 - 当前)

我想创建一个规则,将abc123重定向到abc_123(如果存在),abc_123重定向到abc-123(如果存在)。 感谢

2 个答案:

答案 0 :(得分:16)

为什么不呢?

RewriteRule ^([a-z]+)([0-9]+)$ /$1-$2 [NC,L]
RewriteRule ^([a-z]+)_([0-9]+)$ /$1-$2 [NC,L]

修改

或者你可以使用1条规则:

RewriteRule ^([a-z]+)(_?)([0-9]+)/?$ /$1-$3 [NC,L]

通过这种方式,可以轻松地在(_?)中添加字符,而不是一点一点地反复创建相同的规则。

答案 1 :(得分:-6)

我找到this example

RewriteEngine on
#
# If the requested URL exists as a file with a .php extension
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
# internally rewrite requested .html URL to .php file
RewriteRule ^(([^/]+/)*[^.]+)\.html$ /$1.php [NC,L]

您需要了解各种选项并进行编辑,以使其适合您的情况。