我试图从网址栏中的网页中删除扩展程序。
示例:../ about_php => ../about
我在htaccess文件中使用的代码是我找到的代码here:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
将其存储在我的网站文件夹的根目录中(包含2个网页的同一文件夹)。
但这似乎不起作用..实例here。我做错了什么?
答案 0 :(得分:0)
您可以在root .htaccess中使用此代码删除.php
扩展名:
RewriteEngine on
# redirect /dir/file.php to /dir/file, important to use %{THE_REQUEST}
RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
# rewrite /dir/file to /dir/file.php
# %{DOCUMENT_ROOT}/$1\.php -f makes sure there is a matching .php file for the
# given name
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
PS:出于搜索引擎优化的目的,你必须有第一条301规则,否则它对搜索引擎优化会有害,因为/about
和/about.php
都会提供相同的内容。