我在我的网站上使用HTACCESS但是我遇到了一个文件/链接的小问题。
我的链接是http://localhost/photos/view/1465574353
我的HTACCESS是:
Options -MultiViews
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?category=$1 [NC,L,QSA]
RewriteRule ^([\w-]+)/([0-9]+)/?$ index.php?category=$1¤tpage=$2 [NC,L,QSA]
RewriteRule ^view/([0-9]+)/?$ view.php?id=$1 [NC,L,QSA]
当我关注该链接时,我根本没有重定向到任何地方,但是当我关注http://localhost/photos/view.php?id=1465574353
时,我会看到该页面。
任何人都知道这可能是什么原因?
**如果我将其更改为
RewriteRule ^view/([0-9]+)/([\w-]+)/?$ view.php?id=$1&title=$2 [NC,L,QSA]` and visit my page at `localhost/photos/view/1465574353/title
我看到了正确的页面!
仅供参考:我在其他部分使用相同的格式,如下所示:
Options -MultiViews
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?section=$1 [NC,L,QSA]
RewriteRule ^([\w-]+)/([0-9]+)/?$ index.php?section=$1¤tpage=$2 [NC,L,QSA]
RewriteRule ^read/([0-9]+)/([\w-]+)/?$ read.php?id=$1&title=$2 [NC,L,QSA]
答案 0 :(得分:0)
http://localhost/photos/view/1465574353已与
匹配RewriteRule ^([\w-]+)/([0-9]+)/?$ index.php?category=$1¤tpage=$2 [NC,L,QSA]
([\w-]+)
([0-9]+)
因此不会被最终的RewriteRule
处理。
如果您希望它由更具体的(view
)规则处理,则必须交换最后两个规则,因为规则是按顺序尝试的。
RewriteRule ^view/([0-9]+)/?$ view.php?id=$1 [NC,L,QSA]
RewriteRule ^([\w-]+)/([0-9]+)/?$ index.php?category=$1¤tpage=$2 [NC,L,QSA]