我想简单地使用网址:
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中添加其他内容?
谢谢
答案 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]