使用Apache重写内部URL

时间:2015-11-04 17:57:40

标签: apache .htaccess mod-rewrite redirect

我要做的是将http://example.com/tel.php上的请求重定向到http://example.com/default/index/tel,而不向用户显示任何重定向。我在htaccess中这样做:

RewriteEngine On

RewriteRule ^tel\.php$ /default/index/tel [NC,L]


RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

然而重定向显示给用户(HTTP / 1.1 301永久移动),我正试图避免。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

更改规则的顺序,如果

,还可以选择添加尾部斜杠
RewriteEngine On

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^tel\.php$ /default/index/tel [NC,L]
# make it as this if /default/index/tel/ is a real directory
# RewriteRule ^tel\.php$ /default/index/tel/ [NC,L]

确保在清除浏览器缓存后对其进行测试。