我有一些.htaccess麻烦。
我想采取以下网址: / index2 / 在内部重写为 /index2.html
在我的.htaccess文件中,我有:
RewriteEngine On
RewriteRule ^(.*)/$ $1.html [L]
但是网址evanjerkunica / index2 /说: 在此服务器上找不到请求的网址/redirect:/index2.html.html.html。
知道为什么这会在内部重写吗?谢谢你的帮助!!
答案 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]