首先,我想为我的英语道歉。
我正在尝试创建漂亮的网址。不幸的是,我在这个领域没什么经验。现在.htaccess文件内容如下:
RewriteEngine on
RewriteRule index/(.*)/(.*)/ index.php?category=$1&page=$2
RewriteRule index/(.*)/(.*) index.php?category=$1&page=$2
RewriteRule index/(.*)/ index.php?category=$1
RewriteRule index/(.*) index.php?category=$1
RewriteRule index/ index.php
RewriteRule index index.php
有效。重写如下链接:
site.com/index/department/workers
为:
site.com/index.php?category=department&page=workers
因此index.php可以使用此链接。如果没有“page”参数,则第三个或第四个规则处理链接。等等。
问题是在地址栏中有“索引”。我想要一个像
这样的链接 site.com/department/workers
(没有索引)
这可能吗?或者有人可以给我建议我如何重写规则?
答案 0 :(得分:0)
你可以尝试:
RewriteEngine on
RewriteRule (.*)/(.*)/ index.php?category=$1&page=$2
RewriteRule (.*)/(.*) index.php?category=$1&page=$2
RewriteRule (.*)/ index.php?category=$1
RewriteRule (.*) index.php?category=$1
RewriteRule / index.php
不确定这是不是你的意思。
答案 1 :(得分:0)
您可以从重写规则中删除索引。只需确保您考虑与真实文件匹配的请求,例如:
DirectoryIndex index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/?$ index.php?category=$1&page=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/?$ index.php?category=$1
这将:
/something/somethingelse/
格式的请求重写为index.php?category=something&page=somethingelse
/something/
格式的请求重写为index.php?category=something
请注意,您不需要两个规则来考虑end-with- /和doesnt-end-with- / - 您可以在单个规则中对此进行说明。有关设置重写规则的更多信息,请参阅the documentation。