重写规则以删除“.php”扩展名并添加尾部斜杠?

时间:2011-12-08 23:45:57

标签: apache .htaccess url-rewriting

  

可能重复:
  How to remove .php extension and add slash on the url?

我需要输入我的.htacces(现在是空白的)来从我的所有网址中删除.php并强制使用尾随斜杠。


我知道这个问题(通常更为具体)已经被问到了几次,但我发誓我找不到适合我工作的答案。

奇怪的是,我曾经有一个.htaccess代码来完成我想要的东西,我发誓我从这里得到了代码......但我失去了它。

1 个答案:

答案 0 :(得分:1)

尝试将以下内容添加到域根目录中的.htaccess文件

RewriteEngine On
RewriteBase /

#skip existing files and directories
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_FILENAME} !-f 
#capture every url path request ending with a slash 
RewriteCond %{REQUEST_URI} /(.+)/$ [NC]
#and rewritten to .php with that name. Assumes all .php files are in the root
RewriteRule . %1.php [NC,L]    


#add a trailing slash to all urls without one
RewriteCond %{REQUEST_URI} ^(/.+[^/]) [NC]
RewriteRule .  %1/  [L,R=301]

#remove .php from all urls and also add a trailing slash
RewriteRule (.*)\.php  /$1/  [L,R=301,NC]

编辑: 上面修改过,用一个带有斜杠的路径重写请求到同名的a.php。请注意,这假定所有.php文件都在根目录