2016-07-26 80 views
1

我最近添加这些行到我的.htaccess文件在服务器上破后:网站修改.htaccess文件

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

什么,我试图做的是消除在文件名后需要.PHP。这工作很好,但其他的东西被打破了。

该网站的URL是http://subdomain.something.domain/eCom/,我有一个index.php文件,它在上面的链接被使用时自动加载。但在编辑.htaccess文件后,上面的链接返回一个404错误。如果我使用http://subdomain.something.domain/eCom/indexhttp://subdomain.something.domain/eCom/index.php,页面仍可以正常打开。我不知道发生了什么事。无论如何,这可以解决?

注:我不明白上面关于所有RewriteEngine的东西的代码。我刚从一个网站复制,希望能够快速修复。任何有关它的附加信息都会受到欢迎,如果这是破坏我的代码。

回答

2

RewriteCond %{REQUEST_FILENAME} !-d加上您的第一个RewriteCond以避免匹配目录。

+0

请您解释一下这些行的意思吗?我访问信息的网站甚至没有解释这些行。 –

+2

'RewriteCond%{REQUEST_FILENAME}!-f'表示如果文件存在,则不要重写。这将防止'test.jpg'等文件试图重写(因为'test.jpg'存在于你的服务器上)。 'RewriteCond%{REQUEST_FILENAME}!-d'说“如果这个目录存在,不要重写它”。 – FrankerZ