我在一个新项目中,正在设计 URL 结构,
问题是我希望 URL 看起来像这样:/category-23/keyword/5/
正常页面是:/search.php?q=keyword&cat=23&page=5
所以我的问题是,cat and page字段,必须是可选的,我的意思是如果我去/keyword
它应该是/search.php?q=keyword
(第 1 页)
如果我去/category/keyword
应该:/search.php?q=keyword&cat=category&p=1
如果我去/keyword/5/
一定是:/search.php?q=keyword&p=5
现在我的 .htaccess 是这样的:
RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)$ search.php?q=$2&cat=$1&page=$3 [L]
我无法使其正常工作,并且 CSS/图像文件无法加载。
我非常感谢谁能给我一个解决方案。
您可以使用四个规则来完成此操作,每种规则一个:
RewriteRule ^([^/]+)$ search.php?q=$1
RewriteRule ^([^/]+)/([0-9]+)$ search.php?q=$2&p=$1
RewriteRule ^([^/]+)/([^/]+)$ search.php?q=$2&cat=$1&p=1
RewriteRule ^([^/]+)/([^/]+)/([0-9]+)$ search.php?q=$2&cat=$1&p=$3
将此规则置于其他规则之前,任何可以映射到现有文件的请求都将被传递:
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ - [L]
现在,您的最后一个问题是找不到外部链接的资源,这是因为您可能正在使用相对 URL 路径,例如css/style.css
or ./css/style.css
。这些相对引用是从基本 URL 路径解析的,该路径是使用引用的文档的 URL 路径。因此,如果/category/keyword
要求提供相对参考,例如css/style.css
决心/category/keyword/css/style.css
并不是/css/style.css
。使用绝对 URL 路径/css/style.css
使其独立于实际的基本 URL 路径
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)