2012-05-23 41 views
1

我想隐藏以下php文件的任何请求到www.example.com/。mod重写隐藏url

www.example.com/index.php to www.example.com/  (hide index.php) 
    www.example.com/content.php to www.example.com/ (hide content.php) 
    www.example.com/welcome.php to www.example.com/ (hide welcome.php) 

注意:我只想隐藏文件而不重定向它们。例如,将部件隐藏在index.php或content.php上,而不将其重定向到www.example.com/。

我试图

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^\w+\ /(.*)\.php(\?.*)?\ HTTP/ 
RewriteRule^http://%{HTTP_HOST}/%1 [R=301] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* $0.php 

我也试过

DirectoryIndex index.php 
DirectoryIndex content.php 
DirectoryIndex welcome.php 

这些代码似乎没有工作。任何想法?对不起,我对此很陌生。

回答

3

如果我正确地记得这样的事情应该正常工作。

重写规则^/index.php的$ http://www.example.com/ [R,NC,L]
重写规则^/content.php $ http://www.example.com/ [R,NC,L]
重写规则^ /的welcome.php $ http://www.example.com/ [R,NC ,L]

亲切的问候,

+0

谢谢你,这个工程。但是,无论如何,只要隐藏index.php或content.php而不将用户重定向到另一个URL? – Nick

+2

@Nick不,不适用于mod_rewrite。它有两个主要目的:1)在不更改URL的情况下提供不同的页面(通常用于URL的“漂亮打印”)或2)将用户重定向到完全不同的URL。如果你真的需要这种功能(尽管我会问为什么),那么你可能在客户端有一些JavaScript运气, http://stackoverflow.com/a/1465/283242 – IBBoard

+0

非常感谢博。你帮了我很多。原因是我正在做Facebook应用程序,我不希望用户看到我的文件位于何处。 – Nick