如何使用htaccess重写从url中删除此目录/文件夹?

时间:2013-10-15 19:21:52

标签: .htaccess url mod-rewrite directory rewrite

我的目标是:

domain.com/folder

重写 - >

domain.com

这将涉及该站点内的所有链接。 我的意思是在网站上有以下链接:

domain.com/folder/forum.html
domain.com/folder/community.html

这是我的目标:

domain.com/forum.html
domain.com/community.html

并且非常重要的是"文件夹"永远不会出现在地址栏的网址中。

我尝试了很多代码,但我无法解决这个问题。 我最好的尝试是使用此代码:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.*)folder
RewriteRule ^(.*)$ folder/$1 [L]

如果我输入

 domain.com 

我得到了

的内容
 domain.com/folder

显示,什么是正确的("文件夹"不在显示的网址中)。但是,当我点击该网站的一些链接,如:domain.com/folder/community.html然后我可以再次看到"文件夹"在网址中,但我希望它一直被移除。

这是我的网站:

thewedgiecommunity.x10.mx/wedgiecommunity/

我的目标是删除" wedgiecommunity" (=文件夹) 此链接正常运行

  thewedgiecommunity.x10.mx/

但是当你点击社区(

 thewedgiecommunity.x10.mx/wedgiecommunity/community.html

)然后我又来了" wedgiecommunity"在网址中。

当有人可以帮助我时会很棒

2 个答案:

答案 0 :(得分:7)

您可以使用此代码:

进入DOCUMENT_ROOT / wedgiecommunity / .htaccess:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+wedgiecommunity([^\s]*) [NC]
RewriteRule ^ %1 [R=301,L]

进入DOCUMENT_ROOT / .htaccess:

RewriteEngine On

RewriteRule !^/?wedgiecommunity wedgiecommunity%{REQUEST_URI} [L,NC]

答案 1 :(得分:1)

当您通过浏览器直接访问该文件夹时,可以使用此规则从网址中“删除”该文件夹:

RewriteCond %{THE_REQUEST} \ /wedgiecommunity/
RewriteRule ^wedgiecommunity/(.*)$ /$1 [L,R=301]

然后你的另一条规则将处理其余的规则。