我对新的.htaccess
和rewrite rules
。因此,如果我的问题不相关,请原谅我。
我有以下htaccess代码。
RewriteRule ^([^/]+)/([^/]+)/?$ article-list.php?link=$1&page=$2 [L,QSA]
如果我访问url就像www.example.com/category/0
它的作品。但是,如果我删除页面网址和最后一个斜杠,www.exapmle.com/category
则会看到一个丑陋的404页面。
我的htaccess指令有什么问题?
提前致谢。
编辑:完全 .htaccess
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]
RewriteRule ^haber/([^/]+)-([^/]+)/?$ article.php?link=$1&i=$2 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ article-list.php?link=$1&page=$2 [L,QSA]
这是正确的行为。
实际上,以正则表达式表示一个+
手段at least one
。
当您使用([^/]+)
它意味着at least one character which is not a slash
。
您的规则^([^/]+)/([^/]+)/?$
表示at least one character which is not a slash
/ at least one character which is not a slash
可选的斜杠。
这就是为什么它仅不适用于第一部分网址的原因。如果您还想处理example.com/category
,则需要另一条规则:
RewriteRule ^([^/]+)/?$ article-list.php?link=$1 [L]
RewriteRule ^([^/]+)/([^/]+)/?$ article-list.php?link=$1&page=$2 [L]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句