2017-10-16 86 views
1

我想从我的网址中删除.php扩展名。问题是我的一些文件夹与我的一些页面共享相同的名称。例如,我有一个名为“materiel”的文件夹和一个名为“materiel.php”的页面。我发现这段代码的解决方案:重写网址离线工作,但不在线

Options -MultiViews 

RewriteEngine On 

# Manually re-route materiel/ requests to materiel 
RewriteCond %{REQUEST_FILENAME} materiel/$ 
RewriteRule ^(.*)/$ $1 

# Hide extension 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

它正常工作在我的网站的本地版本,但不能上网(它导致一个错误页)。我已经尝试在我的代码中添加Options -MultiViews和DirectorySlash Off,但没有成功。我的主机是1 & 1.也许有人已经遇到过这样的问题?

在此先感谢您的任何答案。

+2

是否在您的服务器上启用了mod_rewrite? – Pauloscorps

+0

错误页面说什么? – kerbholz

+0

我认为mod_rewrite已启用,因为重写适用于所有不与文件夹共享同一名称的页面。错误页面只是我创建的404.php。 – ekno

回答

0
Options -MultiViews 

RewriteEngine On 
RewriteBase/

# Manually re-route materiel/ requests to materiel 
RewriteCond %{REQUEST_FILENAME} materiel/$ 
RewriteRule ^(.*)/$ $1 

# Hide extension 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

尝试将RewriteBase设置为您的基础目录。

+0

感谢您向我展示要采取的措施。由于我在我的服务器根目录中创建了一个文件夹,所以我必须编写RewriteBase //。现在所有工作都很好! – ekno

0

要排除被重写的目录,你可以添加

RewriteCond %{REQUEST_FILENAME} !-d 

为你重写条件之一。