2009-10-08 57 views
2

我在做一个网站,我目前正在对许多的URL重写痛苦,但我注意到一个小问题:的.htaccess相同的URL带或不带/

RewriteRule ^domains/transfer$ ./cart.php?gid=11 [L,NC] 

这与导航路线,如果我请访问:

http://my-site/domains/transfer 

但它不会有拖尾工作/:

http://my-site/domains/transfer/ 

有没有一种方法,我可以改变RewriteCode采取EIT她的论点并进入同一页面。看起来浪费两次相同的行包括'/'

任何帮助,将不胜感激。

干杯

回答

3

行更改为这样:

RewriteRule ^domains/transfer/?$ ./cart.php?gid=11 [L,NC] 

神奇的是这里:/?和允许前面的字符,在这种情况下,斜线(/),是可选的。

如果您想在transfer之后出现某些内容,请删除标记允许匹配结束的美元符号($)。

+0

真棒。完美的作品。非常感谢。 – frodosghost 2009-10-08 05:45:30

0

我会建议你只允许一个URL的形式,在一个有或没有结尾的斜线,并重定向如果畸形的:

# remove trailing slash 
RewriteRule (.*)/$ /$1 [L,R=301] 

# add trailing slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .*[^/]$ /$0/ [L,R=301] 
+0

是否有允许一个而不是另一个的理由?这是一个程序问题,还是更正确的问题? – frodosghost 2009-10-08 21:52:05

+0

@frodosghost:这是一个正确性问题。每个资源应该只有一个有效的URL。 – Gumbo 2009-10-08 22:34:13

+0

@Gumbo ::谢谢。实施。 – frodosghost 2009-10-09 01:09:29