【发布时间】:2016-04-25 08:55:31
【问题描述】:
为了制作友好的 URL,以下是应用的 htaccess 代码:
RewriteEngine On
RewriteCond %{THE_REQUEST} /.+?\.php[\s?] [NC]
RewriteRule ^ - [F]
RewriteRule ^([^/\.]+)$ index.php?id1=$1 [NC,L,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)$ index.php?id1=$1&id2=$2 [NC,L,QSA]
现在适用于:
mydomain.com/pages到mydomain.com/index.php?id1=pagesmydomain.com/pages/xyz到mydomain.com/index.php?id1=pages&id2=xyz
另外,当我在 URL 中手动输入 mydomain.com/index.php?id1=pages&id2=xyz 时,它会重定向到 mydomain.com。
现在,当我输入另一个类似 mydomain.com/templates 的模板是一个存在的目录时,它会重定向到 mydomain.com/templates/?id1=templates
编辑 1:
我尝试添加此行但徒劳无功:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
我应该如何使用 htaccess 避免这种情况(当存在具有该名称的目录时)?
【问题讨论】:
标签: apache .htaccess mod-rewrite