使用.htaccess隐藏url中的目录

时间:2014-12-31 06:55:43

标签: .htaccess mod-rewrite

我的链接如下:

localhost/a/site/watch/contact/

localhost/a/site/details/about/

其中.htaccess文件位于站点文件夹

我想要做的就是从网址中删除观看详细信息,例如:

localhost/a/site/contact/

localhost/a/site/about/

更新

#Options -Indexes 
#Options         +FollowSymLinks
RewriteEngine   On

#Exclude myadmin directory from the second level links
RewriteRule     ^(myadmin)(/.*)?$ - [L]
RewriteRule     ^(source)(/.*)?$ - [L]

ErrorDocument 404 /404.html

RewriteRule     ^([a-zA-Z0-9_\-]+)/?$    index.php?task=$1 [L]
#Redirect 2nd level links to index.php
RewriteRule     ^([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)?$    index.php?task=$1&slug=$2 [L]

#Redirect 3rd level links to index.php
RewriteRule     ^([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)?$    index.php?task=$1&slug=$2&page=$3 [L]

#Redirect 4th level links to index.php
RewriteRule     ^([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)/([a-zA-Z0-9_\-]+)?$    index.php?task=$1&slug=$2&title=$3&page=$4 [L]

我试过了,但这不起作用

#RewriteRule ^/(.*)$ /watch/$1
RewriteBase /a/site
RewriteCond %{HTTP_HOST} ^/watch/
RewriteRule /(.*) /watch/$1 [QSA,L]
RewriteRule /(.*) /details/$1 [QSA,L]
RewriteRule /(.+) /watch/$1/index.php [NC,L]
RewriteCond %{THE_REQUEST} \ /+watch/
RewriteRule ^watch/(.*)$ /$1 [L,R=301]

1 个答案:

答案 0 :(得分:0)

RewriteEngine On中的/a/site/.htaccess行下面插入这2条规则:

RewriteRule ^(contact)/?$ index.php?task=watch&slug=$1 [L,QSA,NC]

RewriteRule ^(about)/?$ index.php?task=details&slug=$1 [L,QSA,NC]