htaccess RewriteRule有效,但浏览器不显示友好的URL

时间:2013-07-26 19:11:10

标签: .htaccess url-rewriting friendly-url

我想简单地使用网址:

example.com/connect/admin/create

重定向到:

example.com/connect/admin/create.php

我在.htaccess文件中有以下代码:

RewriteEngine On
RewriteBase /
RewriteRule ^connect/admin/create$ http://example.com/connect/admin/create.php [R=301,L,NE]

它重定向正确。问题是浏览器现在显示

example.com/connect/admin/create.php

当我仍然希望它显示时:

example.com/connect/admin/create

我是否需要在.htaccess中添加其他内容?

谢谢

1 个答案:

答案 0 :(得分:1)

您的原始重写规则包含R=301的显式重定向。该标志需要删除。其次,RewriteRule(目标)的右侧包括http://example.com/,它也会隐式强制浏览器重定向。相反,只使用右侧的相对路径:

RewriteEngine On
RewriteBase /
RewriteRule ^connect/admin/create$ connect/admin/create.php [L,NE]

如果您还想在connect/admin内删除.php,则可以通过更通用的方式完成此操作:

# Capture the action into $1 and pass it to the redirect target.
RewriteRule ^connect/admin/([^/.]+)/?$ connect/admin/$1.php [L,NE]