多个内部重写不按预期工作

时间:2013-09-04 15:01:19

标签: apache .htaccess

我有一些.htaccess麻烦。

我想采取以下网址:  / index2 / 在内部重写为 /index2.html

在我的.htaccess文件中,我有:

    RewriteEngine On
    RewriteRule ^(.*)/$ $1.html [L]

但是网址evanjerkunica / index2 /说:   在此服务器上找不到请求的网址/redirect:/index2.html.html.html。

知道为什么这会在内部重写吗?谢谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

在应用规则之前,您需要检查html是否存在。您可以使用以下条件执行此操作:

RewriteEngine On

# extract the pathname into a capture group
RewriteCond %{REQUEST_URI} ^/(.*?)/?$

# test to see if the pathname + .html exists as a file
RewriteCond %{DOCUMENT_ROOT}%1.html -f

# if both conditions are true, apply the rule:
RewriteRule ^(.*?)/?$ $1.html [L]