.htaccess url重写不工作没有尾随斜杠?

时间:2011-12-08 14:43:15

标签: php .htaccess mod-rewrite

我想在我的网站上重写网页的网址。它基本上非常简单。我的原始网址如下所示

http://www.mypage.com/website/page.php?slug=my-page

我希望它看起来像这样:http://wwww.mypage.com/website/my-page/

这很有效。如果删除尾部斜杠,那么会有什么作用。这是我的htaccess:

RewriteEngine on
RewriteRule ^(.*)/$ page.php?slug=$1 [L]

好像我删除了斜杠,$ _GET ['slug']只变成了page.php但是带有斜杠,变量显示为“my-page”。

是否可以使链接在没有和使用尾部斜线的情况下工作?

编辑: 如果我在子文件夹中有.htaccess和php文件,这有关系吗?所以我的真实网址是这样的:http://www.mypage.com/website/page.php?slug=something

我现在已经根据它的实际情况编辑了帖子。

3 个答案:

答案 0 :(得分:1)

RewriteEngine on
RewriteRule ^(.*)/?$ page.php?slug=$1 [L]

问号使尾部斜线可选。我还建议只有一种URL。就像没有尾随salsh的重定向网址一样,带有。

的网址

答案 1 :(得分:1)

我只能考虑在RewriteRule ^(.*)/$ page.php?slug=$1 [L]

之前使用这一行
RewriteRule ^(.*)$ page.php?slug=$1 [L]

基本上,在原始代码中,您声明了一个尾部斜杠,因此它需要一个尾部斜杠

答案 2 :(得分:1)

尝试添加此内容:

RewriteRule ^website/([a-z0-9]+)/?$ website/page.php?slug=$1      [NC,L,QSA]

根据您要接受的网址类型,根据需要修改正则表达式。

查看htaccess如何处理查询字符串等内容:

http://httpd.apache.org/docs/1.3/howto/htaccess.html