我的网站由主页面和多个子目录构成,所有这些都在同一个域下。
我的网址目前是................. |理想的干净版本:
mysite.com
mysite.com/?content=content1
...................... | mysite.com/content1/
mysite.com/?content=content2&page=4
........ | mysite.com/content2/4/
mysite.com/?content=content3
...................... | mysite.com/content3/
mysite.com/?content=content4
...................... | mysite.com/content4/
mysite.com/?content=article&id=34
............ | mysite.com/article/34/
然后子目录基本相同:
mysite.com/subdir
, mysite.com/subdir2
, mysite.com/subdir3
等
mysite.com/subdir/?content=content1
................... | mysite.com/subdir/content1/
mysite.com/subdir/?content=content2&page=4
..... | mysite.com/subdir/content2/4/
mysite.com/subdir/?content=content3
................... | mysite.com/subdir/content3/
mysite.com/subdir/?content=content4
................... | mysite.com/subdir/content4/
mysite.com/subdir/?content=article&id=34
......... | mysite.com/subdir/article/34/
我简单地使用了mod_rewrite,但我不确定如何处理这些多变量。另外,我如何区分实际的子文件夹和内容变量。这样可以防止'subdir'或'subdir2'作为根站点的内容变量插入。
我玩了很多代码片段,但是我已经把我的.htaccess slate 擦干净了,然后接近你所有人试图帮助我重新填充它。您的意见将完全受到赞赏。
注意: 页面查询字符串唯一需要的时间是'content'=='content2'
?content=content2&page=4
**文章/ ID关系共享相同的规则,所有其他“内容”值都应该是动态的。
答案 0 :(得分:0)
你可以在main和子目录中复制类似的内容:
RewriteRule ^(content\d+)(?:/(\d+))?/?$ ?content=$1&page=$2
如果你不想要一个空的& page = param,你可以将它分成两个不同的RewriteRules。
RewriteRule ^(content\d+)/?$ ?content=$1
RewriteRule ^(content\d+)/(\d+)/?$ ?content=$1&page=$2
article
的方法相同。
答案 1 :(得分:0)
会为你效劳。
RewriteEngine On
RewriteBase /
RewriteRule ^([^/]*)/$ /?content=$1 [L,QSL]
RewriteRule ^([^/]*)/([^/]*)/$ /?content=$1&page=$2 [L,QSL]
RewriteRule ^([^/]*)/id/([^/]*)/$ /?content=$1&id=$2 [L,QSL]