在我的.htaccess中我需要什么,例如权限等

时间:2014-05-10 14:28:44

标签: .htaccess mod-rewrite permissions root

我的网站根目录下有一个.htaccess文件,我确保.htaccess 是扩展程序,而不是.htaccess.txt 。我正在尝试清理我的.php网址,即使在查看了有关此问题的所有其他问题后,也无法正常工作。

我非常确定删除扩展名的代码是正确的,所以我想知道在.htaccess内是否需要其他代码来获取权限或类似内容。感谢您的回答,不要将其标记为duplicate ...我已经在Stack Overflow,SitePoint和所有其他网站上搜索了几个小时。

以下是我.htaccess中的代码:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php

为了确保清楚,我想要网址:

website.com/about.php
website.com/home.php
website.com/blog.php

看起来像

website.com/about
website.com/home
website.com/blog

它应该从我网站的所有目录中的所有 .php文件中删除.php

1 个答案:

答案 0 :(得分:0)

你真的想要

RewriteEngine On

#if the requested file doesn't exist on server filesystem
RewriteCond %{REQUEST_FILENAME} !-f 

#AND if the file with php extension exists. Just an extra check
RewriteCond %{REQUEST_FILENAME}\.php -f 

#AND if the request isn't for domain root
RewriteCond %{REQUEST_URI} !/$ 

RewriteRule ^(.*)$ /$1\.php?r=1 [L]

#redirect all urls ending with .php to "clean" URL
RewriteCond %{REQUEST_URI} ^/?(.*)\.php$
RewriteCond %{QUERY_STRING} !(^|&)r=1
RewriteRule ^(.*)\.php$  /$1? [L,R=301]

website.com/about.php不会显示website.com/about,但如果用户访问website.com/about.php,则会显示website.com/about