使用.htaccess重写文件夹名称
我想知道是否有可能使用.htaccess
来重写文件夹名称。 我的意思是这个。使用.htaccess重写文件夹名称
可以说,我有一个像网址:
www.site.com/folder1/page.php
现在我想的URL重写(例如)
www.site.com/apple/page.php
的文件夹1是我网络空间的现有文件夹。
重要:“苹果”不是一个文件夹,而只是一个名字!
确定这里是一步步的计划:
- 用户类型
www.site.com/folder1/login.php
- URL应该重写,而不是网址重定向到
www.site.com/apple/login.php
这意味着apple
只是一个名称而不是目录。所有的代码应该来自folder1。 Acacally苹果应该只是folder1
的别名。我不能将folder1
重命名为Apple
。因此,我只是将folder1
重写为apple
。
mod_rewrite只能重写/重定向请求的URI。因此,您需要请求/apple/…
将其重写为相应的/folder1/…
。
试试这个:
RewriteEngine on
RewriteRule ^apple/(.*) folder1/$1
此规则将改写所有以URI路径/apple/…
内部到/folder1/…
开始请求。
编辑当你实际上是在寻找其他方式轮:
RewriteCond %{THE_REQUEST} ^GET\ /folder1/
RewriteRule ^folder1/(.*) /apple/$1 [L,R=301]
此规则旨在与上述其他规则协同工作。 /folder1/…
的请求将从外部重定向到/apple/…
,并且/apple/…
的请求将在内部重写为/folder1/…
。
尝试:
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
如果你希望出现在URL中的文件夹是在语句的第一部分 - 这就是它会匹配对和第二部分“重写”到您现有的夹。 [NC]标志意味着它将忽略大小写差异,例如Apple /将继续前进。
看到这里的教程:http://www.sitepoint.com/article/guide-url-rewriting/
也有适用于Windows一个很好的测试工具,你可以从这里下载: http://www.helicontech.com/download/rxtest.zip 只是要注意,你需要离开了域名测试仪 - 这样该测试是针对/folder1/login.php
重定向从/资料夹到/苹果试试这个:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
重定向于是重写只是结合上面的htaccess文件:
RewriteRule ^/folder1(.*)?$ /apple$1 [R]
RewriteRule ^/apple(.*)?$ /folder1$1 [NC]
不上你的网站苹果文件夹中存在吗? – Josh 2009-08-12 08:10:53
不是它只是一个名字!!!! – sanders 2009-08-12 08:27:36
抱歉,您需要更清楚您想要发生的事情。你能给我们一步一步你想要发生什么,例如用户输入的网址以及实际文件在你的网站空间中的位置。 – Josh 2009-08-12 08:44:58