2011-10-25 64 views
10

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

例如:

我使用有这些页(示例):

  • /ABC123(版本1)
  • /abc_123(第2版)
  • /ABC123/(版本3 - 当前)

我想创建一个规则,将abc123重定向到abc_123,如果它存在,并且abc_123对abc-123如果它是e xists。 感谢

+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] 

这种方式可以很容易地在(_?)添加的,而不是一个遍地创建相同的规则字符差异很小。

+0

谢谢你的工作 –

-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] 

你将要读到的各种选择和编辑它,使之成为你的情况下工作。

+6

我试过了,但它不起作用 –