我的 htaccess 文件中有以下代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
#vanity URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-_]*)$ /profile.php?username=$1 [L,QSA]
RewriteCond %{THE_REQUEST} \ /profile\.php\?username=([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /%1?%2 [L,R=301]
#remove file extensions
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 400 /404.php
ErrorDocument 401 /404.php
ErrorDocument 403 /404.php
ErrorDocument 404 /404.php
ErrorDocument 500 /404.php
<Files .htaccess>
order allow,deny
deny from all
</Files>
关于虚 URL,它可以正常工作,但是在删除URL 末尾的php 扩展时,它不起作用:
1.如果我输入mysite.com/home.php
,我会被重定向到,home.php
但扩展名仍然存在于地址栏中。
2.如果我输入mysite.com/home
,我会被重定向到我的自定义错误页面,因为home
不是用户名是我的数据库。
如何修复 1. 和 2. ?