.htaccess URL重写/删除文件夹/删除“.php”

时间:2017-12-11 21:08:37

标签: php .htaccess url-rewriting

我在WAMP工作当地项目。

所以这是我的文件夹层次结构:

- Project :
   - index.php
   - .htaccess
   - pages : 
         - animaux :
               - mammiferes.php
               - oiseaux.php
               - reptiles.php
         - infos :
               - access.php
               - contact.php
               - plan.php
         - spectacle : 
               - reserverPlace.php
               - spectacle.php

我尝试做的是将商品网址和规则放在例如此网址中:http://localhost/ProjetSyntheseFAC/mammiferes而不是http://localhost/ProjetSyntheseFAC/pages/animaux/mammiferes.php。所以我必须从URL中删除文件夹并删除末尾的“.php”。

我找到的所有内容都尝试无效或者让我陷入内部服务器错误。

这是我上次尝试的内容:

RewriteEngine On
RewriteRule ^mammiferes$ /pages/animaux/mammiferes.php 

////

RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} . [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteCond %{REQUEST_URI} /(.+)
RewriteRule !\.[a-z0-4]{2,4}$ /pages/animaux/%1.php [NC,L]
RewriteRule (.*) /pages/animaux/$1 [L]

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

RewriteRule ^mammiferes$ /pages/animaux/mammiferes.php

如果您的.htaccess文件位于/project/子目录中,而父目录是文档根目录,那么您需要从RewriteRule 取代。例如:

 RewriteRule ^mammiferes$ pages/animaux/mammiferes.php [L]

使用斜杠前缀,替换相对于文档根目录。如果没有斜杠前缀,则它与.htaccess文件所在的位置相关。这假设您没有覆盖此RewriteBase指令(或将RewriteBase设置为/Project/子目录。)

如果稍后添加更多指令,则应包含L标志。