我的网站根目录下有一个.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
。
答案 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
。