好吧,我知道它应该由.htaccess完成。我的.htaccess位于我网站的根目录中,这里是内容
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
我的服务器上也启用了mod rewrite。我有一个其中有操作的表格./getReadings.php
。但是,当我将其更改为它时,./getReadings
它说服务器上不是这样的文件。我怎么了
尝试Options -MultiViews
在RewriteEngine
指令前添加
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L,QSA]
注意:MultiViews
与Apache内容协商有关(这里是问题,因为filename
它将自动转换为filename.php
现有文件)。这就是为什么您必须禁用它。
编辑:现在,您可以通过2个不同的URL(带有或不带有php
扩展名)访问相同的内容。为了避免重复的内容(这对搜索引擎不利),您可以使用此代码将扩展名重定向到无扩展名等效项
Options -MultiViews
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/(.+?)\.php [NC]
RewriteRule . /%1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L,QSA]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句