2011-08-27 45 views
2

好吧,我无言以对这里...简单的.htaccess重写URL到同一服务器上的不同目录

我需要在同一服务器内内它可以重写的目录结构和所有子目录到一个目录,而是目录之前的根。

例如:

http://www.mydomain.com/Themes/default/css/folder 

,并呼吁文件夹毕竟目录。如folder/sub_folderfolder/afolder/anotherfolder,它需要包含ALL子目录内的folder目录。

应该被重定向到这样的:

http://www.mydomain.com 

如何通过folder路径http://www.mydomain.com/Themes/default/css/folder内的.htaccess文件做到这一点?

请别人帮忙。

谢谢你们:)

目录结构中的文件仍然需要针对结构访问时通过PHP调用,但我不希望人们能够浏览到http://www.mydomain.com/Themes/default/css/folder和显示中的所有子目录该文件夹路径和/或所有文件。该文件夹路径后面的所有子目录都是相同的。

我希望能够将.htaccess文件放在服务器上的http://www.mydomain.com/Themes/default/css/folder目录中,但不确切知道为此使用的代码。

此外,更具挑战性......域名可以更改,所以我宁愿不使用.htaccess文件中的域名,而是使用..或。在.htaccess文件中找到一个目录或抓取域名的不同方法。

回答

2

创建/Themes/default/css/folder .htaccess文件,并将这些线有(它需要mod_rewrite的):

Options +FollowSymLinks -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ http://%{HTTP_HOST}/ [R=301,L] 

会重定向(301永久重定向)的所有要求文件夹到主页。如果文件被请求,它将允许它。

如果你想拥有它的工作文件夹以及文件,然后删除RewriteCond线 - 它会重定向所有请求(即使对于非现有的URL)的网页。

如果你创建这样的文件后,看到“500内部服务器错误”那么它就是你的服务器配置:mod_rewrite的可能没有启用或它的指令(重写规则,的RewriteCond,RewriteEngine叙述)不准是放置在.htaccess中。在任何情况下 - 检查Apache的错误日志中是否有确切的错误信息(它会给你确切的原因)。

+0

谢谢你,这是一种魅力! – SoLoGHoST

0
+0

加入'选项-Indexes'完全把我的整个网站降到500错误兄弟!除此之外,我只想在URL中存在条件时将其重定向到域名。当我将.htaccess文件添加到文件夹时,任何目录中的所有文件都无法访问! – SoLoGHoST

+0

如果你继续阅读,你会发现你可以像'IndexIgnore * .png'这样在这种情况下忽略png,从而能够列出不列出的文件列表。 – yoda

+0

我不想列出任何文件/文件夹。我只希望能够通过PHP或内部脚本文件访问它们。这个怎么做? – SoLoGHoST

相关问题