如何使用.htaccess从网址隐藏页面名称和扩展名

时间:2013-04-06 18:58:51

标签: .htaccess

我想从网址隐藏我的所有网页名称和扩展程序,

htt://www.domain.com/innerpage.php
to
http://www.domain.com/

http://www.domain.com/subfolder/innerpage.php
to
http://www.domain.com/subfolder/

http://www.domain.com/subfolder/subfolder/innerpage.php
to
http://www.domain.com/subfolder/subfolder/

我喜欢

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ http://www.domain.com/$1/ [R=301,L]
RewriteRule ^(.*)$ http://www.domain.com/subfolder/$1/ [R=301,L]
RewriteRule ^(.*)$ http://www.domain.com/subfolder/subfolder/$1/ [R=301,L]
RewriteRule ^(.*)/$ $1.php [L]

它不起作用

2 个答案:

答案 0 :(得分:0)

我认为这对你有用

DirectoryIndex innerpage.php index.php index.html index.htm

将此作为.htaccess的第一行。如果没有为目录指定页面,该指令将查找innerpage.php。如果您想在网站网址中隐藏所有页面,那么IMO并不是一个好主意。

答案 1 :(得分:-1)

尝试使用这组指令:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^/?$ /innerpage.php
RewriteRule ^([a-z0-9]+)/?$ /$1/innerpage.php
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/?$ /$1/$2/innerpage.php

RewriteRule ^innerpage.php$ / [R]
RewriteRule ^([a-z0-9]+)/innerpage.php$ /$1 [R]
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)/innerpage.php$ /$1/$2 [R]

令人惊讶的是会发生什么......