我正在尝试从
清理我的网址 localhost/xxx/profile.php?name=google
到
localhost/xxx/google
以下是我的htaccess文件
RewriteEngine On
RewriteBase /creatorsink/
RewriteRule ^([a-z]+)/?$ profile.php?name=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
如果我删除RewriteRule ^(.*)$ $1.php [L]
它正常工作,如果我这样做,那么url不会在没有.php扩展名的情况下打开
有没有办法在不相互冲突的情况下使用它们。
答案 0 :(得分:0)
规则的排序导致问题。你的第一条规则就是抓住每个URI。颠倒顺序,让你的第一条规则变得更加聪明。
RewriteEngine On
RewriteBase /creatorsink/
RewriteRule ^([^/]+)/?$ profile.php?name=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/creatorsink/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]