我的.htaccess
有问题我使用以下重写规则:
RewriteRule ^/?([\w]+)$ /index.php?$1
RewriteRule ^/?([\w]+)/?([\w]+)$ /index.php?$1=$2
RewriteRule ^/?([\w]+)/?([\w]+)/?([\w]+)$ /index.php?$1=$2&$3
RewriteRule ^/?([\w]+)/?([\w]+)/?([\w]+)/?([\w]+)$ /index.php?$1=$2&$3=$4
所以,例如URL domain.com/admin/login调用url domain.com/index.php?admin=login
此功能很好,但是当我只询问url domain.com/admin时,服务器会将我重定向到仅显示白页的domain.com/admin/?admin
(我想要domain.com/index.php?admin
)
问题是,服务器上有一个名为/ admin的目录(之前我曾用这个目录/管理命名,但由于cookie问题,我不得不将其重命名为/admin
)
如果我使用url domain.com/admin我可以正确地重定向到domain.com/index.php?admin
吗?我需要在.htaccess
文件中更改哪些内容?
我希望我能很好地解释这个问题,我是.htaccess的新手,所以我不是专业人士,而是正确地命名问题......
谢谢!
答案 0 :(得分:1)
您需要关闭目录斜杠才能重写文件。
将以下行放在" RewriteEngine on"你的htaccess指令
DirectorySlash off
然后你就可以重写" admin" (没有斜杠)到" index.php" ," admin /"使用斜杠将打开目录" admin"
答案 1 :(得分:1)
答案是肯定的。忽略.htacces中的文件/文件夹时,使用RewriteCond
它就像告诉浏览器跳过该文件夹/文件一样。
在你的情况下,你把它放在你的重写规则之上。
RewriteCond %{REQUEST_URI} !^/admin
这将忽略admin文件夹。您也可以将此用于
等文件RewriteCond %{REQUEST_URI} !.*\.(php|txt|docx)
以上内容将跳过以.php
或.txt
或.docx