我希望得到一个与SO的问题网址完全相同的网址方案。
赞http://stackoverflow.com/questions/6035363/so-like-url-with-mod-rewrite
可以使用http://stackoverflow.com/questions/6035363
访问此页面
但随后它会重定向到http://stackoverflow.com/questions/6035363/so-like-url-with-mod-rewrite
我需要这样做 我的页面将位于名为article.php的根目录中 网址就像
article.php?id=1&title=some_text
我想用[其中任何一个会做]
来访问它acticle.php/id/1/some_text
或
acticle/id/1/some_text
或
acticle/id/1&title=some_text
[对不起我真的不知道mod_rewrite所以我读了一些问题并搜索了一些作弊表,但没有一个工作:(
所以寻找一些复制粘贴解决方案]
答案 0 :(得分:1)
最好是划分并征服URL以对其进行反向工程。
所以有几个要点:
6035363
是网址的重要部分,因为它是问题ID。据说,article/id/some_keyword_text
是我建议的格式。以下RewriteRules将处理它。
RewriteEngine On
RewriteBase /
RewriteRule ^article/(\d+)/?$ test/article.php?id=$1 [L]
RewriteRule ^article/(\d+)/([\w-]+)/?$ test/article.php?id=$1&title=$2 [L]
第一个规则使用可选的尾部斜杠重定向article/id
。第二个规则使用可选的尾部斜杠重定向article/id/some_keyword_text
。 some_keyword_text
只能包含字母数字,下划线或短划线字符。
注意:格式article/id
的网址重定向发生在页面级别。所以这不是RewriteRule,而是在未设置title
时重定向的页面中的逻辑。我猜测301重定向以确保第3点。