2011-12-08 28 views
0

我想重写我的网站中的网页的网址。它基本上非常简单。我原来的URL看起来像这样.htaccess url重写不能以最后的斜线工作?

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 [“塞”]只变成page.php文件,但以斜线变说“我的页面”。

是否有可能使链接既没有也没有尾随斜线?

编辑:它的问题,如果我有一个childfolder中的.htaccess和PHP文件?所以我的真实网址是这样的:http://www.mypage.com/website/page.php?slug=something

我现在编辑了这个帖子,它的确如此。

+0

htaccess的文件的位置有差别。查看htaccess的工作原理。 –

回答

1

尝试添加此:

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

根据需要修改正则表达式,具体取决于您想要接受的URL类型。

查找htaccess的如何运作方面的事情像查询字符串等:

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

+1

@jaypCheck你的代码 - 你有一个开放的paren和一个关闭方括号atm! – Pete171

+0

我使用yout代码并得到一个内部服务器错误:/ – Paparappa

+0

糟糕,明显输入太快!现在修复。再试一次。 –

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

问号使尾部斜线可选。我也建议只有一种URL。就像重定向URL没有后面的salsh一样。

1

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

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

基本上想用这条线的,在你的原代码,你声明的结尾的斜线,所以它需要一个尾随斜线