所以就像修改过的URL一样
我想得到一个与SO的问题URL完全相同的URL方案 像所以就像修改过的URL一样,url,mod-rewrite,url-rewriting,Url,Mod Rewrite,Url Rewriting,我想得到一个与SO的问题URL完全相同的URL方案 像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
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的根目录中
url将类似于
article.php?id=1&title=some_text
我希望通过[任何一个都可以]访问它
acticle.php/id/1/some_text
或
或
[很抱歉,我真的不知道mod_rewrite的事,所以我读了一些问题,用谷歌搜索了一些备忘单,但没有一个有效:(因此,寻找一些复制粘贴解决方案]最好是对URL进行分而治之的反向工程 因此,有几个关键点:
6035363
是URL的重要部分,因为它是问题IDarticle/id/some\u keyword\u text
是我建议的格式。下面的重写规则将处理它
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\u keyword\u text
。some\u keyword\u text
只能包含字母数字、下划线或短划线字符
注意:对格式为
文章/id
的URL的重定向发生在页面级别。因此这不是重写规则,而是页面中的逻辑,当标题未设置时重定向。我猜301重定向是为了确保第3点。最好分割并征服URL以对其进行反向工程
因此,有几个关键点:
6035363
是URL的重要部分,因为它是问题ID
其他一切都是随意的搜索引擎优化,友好的网址
同一页面有多个URL会损害SEO,所以请坚持使用一种URL格式
话虽如此,article/id/some\u keyword\u text
是我建议的格式。下面的重写规则将处理它
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\u keyword\u text
。some\u keyword\u text
只能包含字母数字、下划线或短划线字符
注意:对article/id
格式URL的重定向发生在页面级别。因此这不是重写规则,而是页面中未设置title
时重定向的逻辑。我猜是301重定向以确保第3点。它重定向到root/article.php:(我不知道这是什么意思。请详细说明。我将article.php作为root/test/article.php,当我尝试浏览它时,它会重定向到root/article.phpSoarticle.php
位于webroot(root
)下的test
目录中)?我修改了我的答案,重定向到test/article.php
。它重定向到root/article.php:(我不知道这是什么意思。请详细说明。我将article.php作为root/test/article.php,当我尝试浏览它时,它重定向到root/article.phpSoarticle.php
位于webroot下的test
目录中(root
)?我修改了答案,将其重定向到test/article.php
。
RewriteEngine On
RewriteBase /
RewriteRule ^article/(\d+)/?$ test/article.php?id=$1 [L]
RewriteRule ^article/(\d+)/([\w-]+)/?$ test/article.php?id=$1&title=$2 [L]